1.涉及类
ACE_INET_Addr//ACE网络地址
ACE_SOCK_Acceptor//ACE网络服务器
ACE_SOCK_Connector//ACE网络客户端
ACE_SOCK_Stream//ACE数据流
2.简介
TCP通讯
传输控制协议TCP(Transmission Control Protocol):TCP提供可靠的、面向连接的运输服务,用于高可靠性数据的传输。TCP协议的可靠性是指保证每个tcp报文能按照发送顺序到达客户端。
Tcp通信过程一般为如下步骤:
a) 服务器绑定端口,等待客户端连接。
b) 客户端通过服务器的ip和服务器绑定的端口连接服务器。
c) 服务器和客户端通过网络建立一条数据通路,通过这条数据通路进行数据交互。
3.示例代码
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <iostream> 2 #include "ace/SOCK_Acceptor.h" 3 using namespace std; 4 5 const int SERVER_PORT = 3000 ; 6 int main(int argc, char *argv[]) 7 { 8 char buffer[1024]; 9 ssize_t bc=0; //接收的字节数 10 ACE_SOCK_Stream peer;//SOCK_IO,和客户端的数据通路 11 ACE_Time_Value timeout(100, 0);//TCP接受超时时间 12 13 //Socket创建,绑定,监听 14 ACE_INET_Addr addr(SERVER_PORT); 15 ACE_SOCK_Acceptor acceptor; 16 if(acceptor.open(addr) != 0) //绑定端口 17 { 18 cout<<"bind port fail!"<<endl; 19 return -1; 20 } 21 cout<<"server ready. "<<endl; 22 23 while(true) 24 { 25 if (acceptor.accept(peer) != -1) //建立和客户端的连接 26 { 27 std::cout<<"client connect. "<<std::endl; 28 while(true) 29 { 30 31 if((bc=peer.recv(buffer,1024,&timeout))<=0) //接收数据(超时或对端断开break) 32 { 33 break; 34 } 35 buffer[bc]='