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请求吗的主要内容,如果未能解决你的问题,请参考以下文章

数据库中in函数可以用啥代替

linux 下socket的recv函数返回值问题

Linux——select详解

Linux——select详解

Linux-Shell编程

IO复用之——select