您的位置:首页 > 娱乐 > 明星 > 站长工具亚洲中文精品_沧州网站建设设计定制_搜狗网站收录_优秀网站网页设计分析

站长工具亚洲中文精品_沧州网站建设设计定制_搜狗网站收录_优秀网站网页设计分析

2025/4/20 23:44:02 来源:https://blog.csdn.net/qq_42279379/article/details/143228104  浏览:    关键词:站长工具亚洲中文精品_沧州网站建设设计定制_搜狗网站收录_优秀网站网页设计分析
站长工具亚洲中文精品_沧州网站建设设计定制_搜狗网站收录_优秀网站网页设计分析

本文展示了服务端和客户端进行网络通信的示例:服务端向客户端发送数据,客户端读取服务端发送过来的数据;废话不多说,直接上代码!
服务端代码:

#include <sys/socket.h>
#include <cstdlib>
#include <unistd.h>
#include <cstdio>
#include <sys/types.h>
#include <arpa/inet.h>
int main()
{//Step01:Create a socketint fd_monitor = socket(AF_INET,SOCK_STREAM,0);if(fd_monitor==-1){printf("Failed to create file descriptor!\n");return -1;}//Step02;Set ip address and port for current processingsockaddr_in myaddr;myaddr.sin_family = AF_INET;myaddr.sin_addr.s_addr = INADDR_ANY;myaddr.sin_port = htons(8888);int iResBind = bind(fd_monitor,(sockaddr*)&myaddr,sizeof(myaddr));if(iResBind==-1){printf("Failed to bind!\n");return -2;}//Step03:Listen connectionint iResListen = listen(fd_monitor,128);if(iResListen==-1){printf("Failed to listen!\n");return -3;}//Step04:Wait connection from clientint fd_communication = accept(fd_monitor,NULL,NULL);if(fd_communication < 0){printf("Failed to accept!\n");return -4;}//Step05:Write data to clientchar buffer[1024];while(1){sprintf(buffer,"Hello! I am server!\n");write(fd_communication,buffer,sizeof(buffer));sleep(3);}//Step06:Close communication file descriptorclose(fd_communication);return 0;}

客户端代码:

#include <cstdlib>
#include <unistd.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <cstdio>
#include <cstring>
#define SERVER_IP "127.0.0.1"
#define SERVER_PORT 8888int main()
{//Step01:Create socketint fd_communication = socket(AF_INET,SOCK_STREAM,0);if(fd_communication==-1){printf("Failed to create socket!\n");return -1;}//Step02:Connect serversockaddr_in addr;addr.sin_family = AF_INET;addr.sin_port =htons(SERVER_PORT);inet_pton(AF_LOCAL,SERVER_IP,&addr.sin_addr.s_addr);int iResConnect = connect(fd_communication,(sockaddr*)&addr,sizeof(addr));if(iResConnect==-1){printf("Failed to connect server\n");return -2;}//Step03:Communicate with serverchar buffer[1024];while(1){memset(buffer,0,sizeof(buffer));int iLen = read(fd_communication,buffer,sizeof(buffer));printf("recv data:%s\n",buffer);sleep(1);}close(fd_communication);return 0;
}

需要说明的是:服务端创立的套接字对象需要绑定ip地址和端口号;客户端connect服务端的时候需要提供服务端的ip地址和端口号(服务端提供服务的进程的端口号)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com