基于TCP协议的编程,其最主要的特点是建立完连接后才能进行通信。
常用的基于TCP网络编程函数及功能如表10.3所示。
表10.3 常用的基于TCP网络编程函数及功能
例10.1 服务器通过socket连接后,向客户端发送字符串“连接上了”,并在服务器上显示客户端的IP地址或域名。
程序中的主要语句说明:
1.服务端
(1)建立socket:socket(AF_INET,SOCK_STREAM,0);
(2)绑定bind:bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr);
(3)建立监听listen:listen(sockfd,BACKLOG);
(4)响应客户请求:accept(sockfd,(struct sockaddr *)&remote_addr,&sin_size);
(5)发送数据send:send(client_fd,"连接上了 \n",26,0);
(6)关闭close:close(client_fd);
创建套接字的函数是 socket,socket函数说明如表10.4所示。
表10.4 socket函数
表10.5 send函数
2.客户端
(1)建立socket:socket(AF_INET,SOCK_STREAM,0);(www.xing528.com)
(2)请求连接connect:connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr));
(3)接收数据recv:recv(sockfd,buf,MAXDATASIZE,0);
(4)关闭close:close(sockfd)。
recv函数说明如下:
函数原型:int recv( SOCKET s,char FAR *buf,int len,int flags );
函数功能:不论是客户端还是服务器端应用程序都用rec函数从TCP连接的另一端接收数据。
函数参数:
第1个参数指定接收端套接字描述符;
第2个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据;
第3个参数指明buf的长度;
第4个参数一般置0。
例10.1程序设计流程如图10.2所示。
图10.2 [例10.1]程序设计流程图
服务端源程序代码:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。