在上一篇文章的Linux网络通信中实现了两个进程间进行网络通信,但存在问题,在另一个客户端打开并且也链接到服务端时,这个客户端发的消息无法被服务器接收,这一篇就利用io多路复用select函数解决这个问题,下面是例子和函数原型
#include <string.h>
#include <sys/select.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
//最多允许的客户端的数量
#define NUM 100
int server,client[NUM];
int main(int argc,char* argv[]){
if(argc != 3) printf("请输入ip地址和端口号!\n"),exit(0);
printf("ip:%s port:%d\n",argv[1],atoi(argv[2]));
//1 创建socket
server = socket(AF_INET,SOCK_STREAM,0);
if(-1 == server) printf("创建socket失败:%m\n"),exit(-1);
printf("创建socket