Redian新闻
>
问个socket编程中select()的问题。
avatar
问个socket编程中select()的问题。# Programming - 葵花宝典
k*r
1
1。请问用select()的话是不是就block在select()这个函数?
2. 按我的理解, 一般可以把select()放在一个while(1)loop里这样就可以一直监听了。
即:每有一个事件就执行一下然后返回到select()停在那里。 但请看这段程序:
。。。
FD_ZERO(&readfds);
FD_SET(STDIN, &readfds);
while(1){
printf("before select\n");
select(STDIN+1, &readfds, NULL, NULL, NULL);
printf("after select\n");
if (FD_ISSET(STDIN, &readfds))
printf("A key was pressed!\n");
}
printf("Timed out.\n");
......
我一按键,程序就不停地执行:
after select
A key was pressed!
before select
a
avatar
t*t
2
select完了你不把数据拿走,当然下一次还是有啊!拿脚趾头想也知道啊。。。

了。

【在 k********r 的大作中提到】
: 1。请问用select()的话是不是就block在select()这个函数?
: 2. 按我的理解, 一般可以把select()放在一个while(1)loop里这样就可以一直监听了。
: 即:每有一个事件就执行一下然后返回到select()停在那里。 但请看这段程序:
: 。。。
: FD_ZERO(&readfds);
: FD_SET(STDIN, &readfds);
: while(1){
: printf("before select\n");
: select(STDIN+1, &readfds, NULL, NULL, NULL);
: printf("after select\n");

avatar
k*r
3
又被耻笑了。
不过理清了一个概念。谢谢你。

【在 t****t 的大作中提到】
: select完了你不把数据拿走,当然下一次还是有啊!拿脚趾头想也知道啊。。。
:
: 了。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。