读书人

select函数使用有关问题。

发布时间: 2012-06-15 19:37:05 作者: rapoo

select函数使用问题。。。
Phoenix_静心(540552452) 15:40:40
s1 = socket
s2 = socket
bind s1
bind s2
listen s1
listen s2

fd_set fd, tmp

FD_ZERO(&fd)
FD_SET(s1, fd);
FD_SET(s2, fd);3

select监听两个端口,如何区分变化的是s1还是s2?

[解决办法]


int select(int nfds, fd_set *restrict readfds,
fd_set *restrict writefds, fd_set *restrict errorfds,
struct timeval *restrict timeout);

如果 select 成功返回,readfds 里面肯定存储了对应的 socket(有变化的,看你的需求,一般是有新连接) ,

int FD_ISSET(int fd, fd_set *fdset);
用 FD_ISSET 把 s1,s2 分别送到readfds 里面去判断就好了。

FD_ISSET(s1,readfds);
FD_ISSET(s2,readfds);

读书人网 >C++

热点推荐