【发布时间】:2015-12-29 06:06:24
【问题描述】:
目前在我的学位中,我们开始使用套接字。
我有几个关于从套接字轮询输入的问题,
使用 select() 函数。
int select( int nfds,
fd_set *readfds,
fd_set *writefds,
fd_set *exceptfds,
const struct timespec *timeout);
我们提供选择“nfds”参数,这通常会 是我们想要监控的最大套接字数。我怎样才能只看一个特定的套接字而不是 0 到 nfds_val 套接字的范围?
我们使用哪些文件描述符对象?他们的目的是什么, 为什么我们不能只将“select”指向相关的套接字结构?
我在论坛上阅读了关于 Blocking 和 Non-Blocking 模式的选择,但无法理解它们的含义或用途,也不如何实现,如果有人可以解释,将很高兴。
最后但并非最不重要的(仅暂时 :D) - 当将 socketaddr_in 绑定到套接字号时,为什么需要强制转换为 socketaddr * 而不是将其保留为 sockaddr_in * ? 我的意思是除了 bind 方法需要这种指针类型;)
希望这里有一些专家的回答:)
谢谢你们,祝大家度过愉快的一周!
【问题讨论】:
标签: sockets select file-descriptor