社区
网络编程
帖子详情
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)?
...全文
267
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写文章
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后面的代码,应该是你的程序问题
SQL 查询语句先执行
SELECT
?兄弟你认真的么?
SQL 查询的执行顺序是怎样的? 好像这个
问题
应该很好回答,毕竟自己已经写了无数个 SQL 查询了,有一些还很复杂的。还装不了这个逼了?! 但事实是,我仍然很难确切地说出它的顺序是怎样的。 言归正传,
SELECT
语句的完整语法如下: 1.
SELECT
2. DISTINCT <
select
_list> 3. FROM <left_table> 4....
到底为什么不建议使用
SELECT
*?
“不要使用
SELECT
*”几乎已经成为了MySQL使用的一条金科玉律,就连《阿里Java开发手册》也明确表示不得使用`*`作为查询的字段列表,本文从4个方面给出理由。
如何将PostgreSQL的数据实时迁移到
Select
DB?
其实像异构数据迁移这样的事,只要选对了工具,真的没那么难,属于有手就行。就好像本文的 PostgreSQL 迁移到
Select
DB 的场景,一顿操作下来,任务马上就起来了,数据也立刻就过去了,新的增量数据一眨眼功夫就可以在
Select
DB 端查询到了,回想一下好像自己什么也没干,但却发现数据分析的前置工作都已经完成了。实际的配置过程,远没有你看完这篇文章的时间长,也远没有你想象的复杂。看我说产品如何如何不如直接上手来得直观。
angularjs动态为
select
创建
赋值出现 ?:String:XXXXX?的
问题
之前从未接触过angularjs ,而且这次开发也是基于ionic1.+的版本,使用的环境都是之前没接触过的,而且不是那么新的东西,所以局限性很多,反正我就是没办法了用的下面这种方式写的下拉框 取值是ajax从后端取的,这么写,值是能取到,但是我想给个默认值,花费了好久的时间,我使用 $("#qu").attr("value", result.obj.qu+"");赋值,最后页面...
为什么我不建议你用
SELECT
*?
点击上方蓝色“终端研发部”,选择“设为星标”学最好的别人,做最好的我们 作者:_陈哈哈来源:blog.csdn.net/qq_39390545/article/details/10676...
网络编程
18,358
社区成员
64,164
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章