linux网络编程,可以用select函数代替accept函数接收客户端的connect请求吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux网络编程,可以用select函数代替accept函数接收客户端的connect请求吗相关的知识,希望对你有一定的参考价值。
一般经过创建套接字socket()绑定bind()以及listen()之后, 就可以调用 accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);判断是否有客户端发起链接请求, 不用accept()改用select()可以吗,select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout) 中哪个参数跟客户端有关?
select不可以替代accept,但可以用来作辅助,比如nfds = select(Fd + 1, &fds, NULL, NULL , &tv);
if(nfds>0)
if (listenSock != -1 && FD_ISSET(listenSock, &fds))
if ((sock = accept(listenSock,(struct sockaddr *)&addr, &addrlen)) < 0)
return -1;
大概就这样 参考技术A 这个是不可以替代的,select并不是用来监听是不是有客户端请求发来。 参考技术B 如果select能返回一个已接收客户端请求的,新的socket的话~
以上是关于linux网络编程,可以用select函数代替accept函数接收客户端的connect请求吗的主要内容,如果未能解决你的问题,请参考以下文章