社区
网络编程
帖子详情
select的问题?
ldsjlzy
2004-11-18 02:49:02
n1=select(socket_fd+1,&fdr,(fd_set *)0,(fd_set *)0,&timeout);
if (n1>0 && FD_ISSET(socket_fd,&fdr))
{
int nRet = recv(socket_fd,...)
}
以上代码,为什么select返回值大于0,而后接收数据时却为0呢(nRet = 0)?
...全文
252
12
打赏
收藏
select的问题?
n1=select(socket_fd+1,&fdr,(fd_set *)0,(fd_set *)0,&timeout); if (n1>0 && FD_ISSET(socket_fd,&fdr)) { int nRet = recv(socket_fd,...) } 以上代码,为什么select返回值大于0,而后接收数据时却为0呢(nRet = 0)?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oyljerry
2004-11-18
打赏
举报
回复
recv可能有问题
ldsjlzy
2004-11-18
打赏
举报
回复
我是用循环调用select。
每次select的返回值要么就是0没有数据,要么就是大于0,没有SOCKET_ERROR的情况出现。
但是返回大于0时有时候却收不到数据recv返回为0,有时候却能正确收到数据。
danyueer
2004-11-18
打赏
举报
回复
M$说select函数第一个参数填不填都没关系,不过为了安全起见填个NULL好了。
baoxue10181018
2004-11-18
打赏
举报
回复
把socket_fd+1 改成0试一试,不过应该也没有关系的
9731boy
2004-11-18
打赏
举报
回复
UP.fd有时是非阻塞的,所以你要注意.另外.
你的recv对了吗?
ZHENG017
2004-11-18
打赏
举报
回复
select(socket_fd+1...);
socket_fd ???
select (1,...);
danyueer
2004-11-18
打赏
举报
回复
1 检查返回值 n1,假如 n1 == SOCKET_ERROR,则检查究竟出了什么错;
2 假如返回值不是SOCKET_ERROR,可能是你的Socket初始化有问题,把代码贴出来让大家进一步帮你解决。
Caps77
2004-11-18
打赏
举报
回复
不明白问题在哪里,我这里跟你几乎一样的代码不会有问题,你把socket_fd+1这个参数改成0试试~
sharkhuang
2004-11-18
打赏
举报
回复
其实你可以只设置可读哪位。
哦!是不是断开连接了?
ldsjlzy
2004-11-18
打赏
举报
回复
struct timeval timeout;
int n1;
fd_set fdr;
FD_ZERO(&fdr);
FD_SET(socket_fd,&fdr);
timeout.tv_sec=0;
timeout.tv_usec=1;
n1=select(socket_fd+1,&fdr,(fd_set *)0,(fd_set *)0,&timeout);
if (n1>0 && FD_ISSET(socket_fd,&fdr))
{
int nRet = recv(socket_fd,szRecvBuff,MAXBUFFLENGTH, 0);
}
看看有什么错?有时候n1返回大于0的情况下,有时候能正确收到数据,有时候收到0个数据。
danyueer
2004-11-18
打赏
举报
回复
你的fd设置是不是有问题?
Caps77
2004-11-18
打赏
举报
回复
看看recv后面的代码,应该是你的程序问题
存储过程中如何根据参数是否为空执行不同的
select
??
存储过程中如何根据参数是否为空执行不同的
select
??假设表T1,其中有A1,A2,D1,D2等多个字段,A1,A2为varchar型,D1,D2为日期型。 传来四个参数,@A1,@A2,@D1,@D2,如果为空,则不必理会;如果不为空,则加到条件...
如何将PostgreSQL的数据实时迁移到
Select
DB?
就好像本文的 PostgreSQL 迁移到
Select
DB 的场景,一顿操作下来,任务马上就起来了,数据也立刻就过去了,新的增量数据一眨眼功夫就可以在
Select
DB 端查询到了,回想一下好像自己什么也没干,但却发现数据分析的...
angularjs动态为
select
创建
赋值出现 ?:String:XXXXX?的
问题
之前从未接触过angularjs ,而且这次开发也是基于ionic1.+的版本,使用的环境都是之前没接触过的,而且不是那么新的东西,所以局限性很多,反正我就是没办法了用的下面这种方式写的下拉框 ...
select
标签下拉选项一直显示第一项的
问题
? onchange()事件
下拉选项一直显示第一项的
问题
? 原因:onchange从这个名称就可以看出,只有在
select
的选项有改变(change)的时候才会触发这个事件的。一般情况下
select
的第一个选项是默认选项,当你选中第一个项时,由于值没有...
angularjs会多出一个?string:?
问题
理解
问题
是因为:
select
里定义的ng-model没有初始值,赋了初始值就不会有这个
问题
,但另一个
问题
是你的选项可能不需要默认选中某个值。原因如此,如果有更好的办法处理这种情况,麻烦多花一分钟告诉我,将感激不尽多出?...
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章