TCPserver如何与多个client通信?

2023-05-05 14:23:36 来源:面包芯语


【资料图】

首先,需要注意的是,我们创建tcp_server的方式为:

左右滑动查看全部代码>>>

intserver_fd=tcp_init(NULL,4321);
inttcp_init(constchar*ip,intport){intoptval=1;intserver_fd=socket(AF_INET,SOCK_STREAM,0);if(server_fd<0){perror("socket");return-1;}/*解除端口占用*/if(setsockopt(server_fd,SOL_SOCKET,SO_REUSEADDR,&optval,sizeof(optval))<0){perror("setsockopt\n");return-1;}structsockaddr_inserver_addr;bzero(&server_addr,sizeof(structsockaddr));server_addr.sin_family=AF_INET;server_addr.sin_port=htons(port);if(NULL==ip){server_addr.sin_addr.s_addr=htonl(INADDR_ANY);}else{server_addr.sin_addr.s_addr=inet_addr(ip);}if(bind(server_fd,(structsockaddr*)&server_addr,sizeof(structsockaddr))<0){perror("bind");close(server_fd);return-1;}if(listen(server_fd,MAX_CONNECT_NUM)<0){perror("listen");close(server_fd);return-1;}returnserver_fd;}

我们使用INADDR_ANY来创建server。

INADDR_ANY:表示不确定地址,或所有地址、任意地址。也就是表示本机的所有IP,因为有些机子不止一块网卡,多网卡的情况下,这个就表示所有网卡ip地址的意思。

192.168.1.107127.0.0.1

下面使用我们本机上两个client连接server并进行数据交互:

好了,以上就是本次demo演示的server同时与4个client通信的小实验,希望这篇文章能对大家有所帮助!

关键词:

Copyright   2015-2022 欧洲社团网 版权所有  备案号:沪ICP备2022005074号-23  联系邮箱: 58 55 97 3@qq.com