(资料图)
首先,需要注意的是,我们创建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通信的小实验,希望这篇文章能对大家有所帮助!