社区
网络编程
帖子详情
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)?
...全文
258
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
* ?是性能
问题
吗 ?
作者 孤独烟,中国平安研发工程师,目前负责云平台架构设计以及需求研发工作。毕业后一直从事Java开发工作,在Web开发、架构设计上有多年的实战经验。在MySQL性能优化、JVM调优、分布式...
select
col1,col2,…,co...
MYSQL-谨慎使用
select
* ?
MYSQL-谨慎使用
select
* 每次在写查询语句的时候,都需要用怀疑的眼光审视,是不是真的需要返回全部的列,确定要使用
SELECT
* FROM? 错误方式:
Select
* from TblA; 这将取出表的全部列,会让MYSQL...
select
的onChange事件
问题
解决
select
的onChange事件
问题
解决 (onchange、onfocus、onclick、onmousedown) 一、onChange事件只有在值改变时才可触发,所以必须在每一次选择时(尤其第一次)保证选择的值是改变的! 所以
select
ed >个人 //...
为什么不建议用
select
* ?
select
* from table; “经验”丰富后,可能你看到了这样的SQL后,大脑中本能的搜索出了网上的各种说使用*不好的文章,但具体是为啥不好呢? 业务表象原因: 1 ,有这样的场景,一个表T被A,B两个功能使用,两...
为什么我不建议你用
SELECT
*?
” 无论在工作还是面试中,关于SQL中不要用“
SELECT
*”,都是大家听烂了的
问题
,虽说听烂了,但普遍理解还是在很浅的层面,并没有多少人去追根究底,探究其原理。 废话不多说,本文带你深入了解一下"
SELECT
* "效率...
网络编程
18,358
社区成员
64,186
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章