- 创建一个新的套接字
int listenfd;
listenfd = Socket(AF_INET,SOCK_STREAM|SOCK_NONBLOCK|SOCK_CLOEXEC,0);
- 为该套接字绑定ip和端口
sockaddr_in serv_addr;
bzero(&serv_addr,sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(SERV_PORT);
serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
Bind(listenfd,(struct sockaddr*)&serv_addr,sizeof(serv_addr));
- 设置端口复用
//设置服务器的套接字支持端口复用
int opt = 1;
setsockopt(listenfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt));
- 设置监听的上限数
//设置监听的最大上限数
Listen(listenfd,SOMAXCONN);
- 将listenfd添加到poll监听的数组中
//将服务器的套接字设置为poll监听
struct pollfd pfd;
pfd.fd = listenfd;
pfd.revents = POLLIN;
PollFdList pollfds;
pollfds.push_back(pfd);
- 一