TCP协议下服务器与客户端编程流程。
提示:以下是本篇文章正文内容,下面案例可供参考
一、TCP是什么?TCP是一种可靠的,面向连接的流式服务。
服务器端代码如下(示例):
```ser.c``
#include#include #include #include #include #include #include int main() { int sockfd=socket(AF_INET,SOCK_STREAM,0);//创建套接字 assert(sockfd!=-1); struct sockaddr_in saddr,caddr; memset(&saddr,0,sizeof(saddr)); saddr.sin_family=AF_INET//设置IPV4协议族 saddr.sin_port=htons(6000);//设置端口号,需特别注意,1024以内的端口是著名端口,比如80是Web服务器端口,不能随便使用 saddr.sin_addr.s_addr=inet_addr="127.0.0.1"; int res=bind(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));//绑定 assert(res!=-1); listen(sockfd,5);//创建监听队列 while(1) { int len=sizeof(caddr); int c=accept(sockfd,(struct sockaddr*)&caddr,&len);//接收连接 if(c<0)//说明对方关闭 { continue; } printf("c=%dn",c); char buff[128]={0}; int n=recv(c,buff,127,0);//接受数据 send(c,"ok",2,0);//发送数据 close(c);//关闭连接 } }
```cli.c``
#include总结#include #include #include #include #include #include int main() { sockfd=sockrt(AF_INET,SOCK_STREAM,0); assert(sockfd!=-1); struct sockaddr_in saddr;//指定服务器的IP和端口 memset(&saddr,0,sizeof(saddr)); addr.sin_family=AF_INET//设置IPV4协议族 saddr.sin_port=htons(6000);//设置端口号 saddr.sin_addr.s_addr=inet_addr="127.0.0.1"; int res=connect(sockfd,(struct sockaddr*)&saddr,sizeof(saddr));//连接客户端 assert(res!=-1); char buff[128]={0}; printf("inputn"); fgets(buff,127,stdin);//获取键盘输入数据 send(sockfd,buff,strlen(buff),0);//发送 memset(&buff,0,128); recv(sockfd,buff,127,0);//接受客户端消息 printf("recv:%sn",buff); close(sockfd);//关闭连接 }
这里只做了服务器与客户端进行一次交互的代码



