首页 理论教育 Linux系统编程:TCP编程

Linux系统编程:TCP编程

时间:2023-11-16 理论教育 版权反馈
【摘要】:基于TCP协议的编程,其最主要的特点是建立完连接后才能进行通信。表10.3常用的基于TCP网络编程函数及功能例10.1服务器通过socket连接后,向客户端发送字符串“连接上了”,并在服务器上显示客户端的IP地址或域名。表10.4socket函数表10.5send函数2.客户端建立socket:socket;请求连接connect:connect;接收数据recv:recv;关闭close:close。例10.1程序设计流程如图10.2所示。图10.2[例10.1]程序设计流程图服务端源程序代码:

Linux系统编程:TCP编程

基于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]程序设计流程图

服务端源程序代码:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈