ACE学习笔记一(基本的TCP/IP Socket用法)
2015-06-04 17:07
791 查看
1.基本的概念
地址(address ):定义对端点的寻址手段ACE_INET_Addr
//////////////////////////////////////////////////////////
2.一个简单的客户端的创建方法
(1)创建一个ACE_Sock_Addr,用这个创建的地址来进行连接相应的Socket
(2)ACE使用ACK_SOCK_Stream对象表示已经连接的TCPSocket,为了主动的使用ACE_Sock_Stream连接到服务器,需要使用ACE_Sock_Connector和已经构造好的ACE_INET_Addr:
Connect的参数是:要连接的流对象,以及它应该连接到的流地址。
(3)如果连接成功,ACE_SOCK_Stream就会进入相应的连接状态,用来进行和服务器进行通讯
关于connect()函数、send_n函数、recv_n函数对于超时的处理可以使用相应的ACE_Time_Value进行指定
///////////////////////////////////////////////////
3.创建一个简单的服务器
(1)创建一个ACE_INET_Addr定义想要进行侦听的接口
(2)使用ACE_SOCK_Acceptor对象在该端口上打开一个侦听器
(3) 一旦定义了地址,并打开了用于监听新连接的***,就要等待那些新的连接的到达。这是通过Accept()方法完成的。
(4)连接建立成功以后,peer_addr中将会填写相应的对端的IP地址和端口号,下面就可以进行相应的通信了
连接器(Connector):主动建立连接ACE_SOCK_Connector
***(acceptor):被动建立连接ACE_SOCK_Acceptor
流(Stream):传输数据ACE_SOCK_Stream地址(address ):定义对端点的寻址手段ACE_INET_Addr
//////////////////////////////////////////////////////////
2.一个简单的客户端的创建方法
(1)创建一个ACE_Sock_Addr,用这个创建的地址来进行连接相应的Socket
(2)ACE使用ACK_SOCK_Stream对象表示已经连接的TCPSocket,为了主动的使用ACE_Sock_Stream连接到服务器,需要使用ACE_Sock_Connector和已经构造好的ACE_INET_Addr:
ACE_SOCK_Addr srvr(50000,ACE_LOCALHOST);//定义待连接的对端的地址 ACE_SOCK_Connector connector; ACE_SOCK_Stream peer; If(-1 == connector.connect(peer,srvr)) { ACE_ERROR_RETURN((LM_ERROR,ACE_TEXT(“%p\n”),ACE_TEXT(“Connect”)),1); } |
(3)如果连接成功,ACE_SOCK_Stream就会进入相应的连接状态,用来进行和服务器进行通讯
peer.send_n(“update\n”,7); bc = peer.recv(buf,sizeof(buf)); write(1,buf,bc); peer.close(); |
///////////////////////////////////////////////////
3.创建一个简单的服务器
(1)创建一个ACE_INET_Addr定义想要进行侦听的接口
(2)使用ACE_SOCK_Acceptor对象在该端口上打开一个侦听器
ACE_INET_Addr port_to_listen(50000); ACE_SOCK_Acceptor acceptor; If(acceptor.open(port_to_listen,1)==-1) ACE_ERROR_RETURN((LM_ERROR,ACE_TEXT(“%p\n”),ACE_TEXT(“acceptor.opn”)),100); |
If(acceptor.accept(peer,&peer_addr,&time_out,0)==-1) { //提示相应的信息 } |
相关文章推荐
- 腾迅股票数据接口 http/javascript
- IHttpHandler和IHttpHandlerFactory应用实例
- SpringMVC 学习笔记(七) JSON返回:HttpMessageConverter作用
- QQ开放平台地址 http://open.qq.com/
- Spring HTTP Invoker
- 访问HTTPS时SSL/TLS证书拒绝问题 : unable to find valid certification path to requested target
- 如何设置虚拟机网络
- 新浪微博开发平台地址 http://open.weibo.com/
- Java正则表达式(转载http://www.java3z.com/cwbwebhome/article/article8/Regex/Java.Regex.Tutorial.html#reg6)
- TCP/IP-------MTU、MSS、分片
- TCP 的那些事儿(下)
- iOS应用架构谈 网络层设计方案
- 使用ruby_Hpricot_httpclient 获取网页图片
- TCP 的那些事儿(上)
- TCP socket编程中send函数
- Android之Http通信——4.Android HTTP请求方式:HttpClient
- nginx HTTP模块组成
- 单机最大tcp连接数
- ListView加载网络数据和图片
- VMware虚拟机采用桥接方式不能上网——都是共享神盾惹的祸!