社区
网络编程
帖子详情
★怎么检测SOCKET的缓冲区是否有数据到达?
tnswy
2003-12-18 01:03:25
怎么检测SOCKET的缓冲区是否有数据到达?
请指点。
...全文
205
14
打赏
收藏
★怎么检测SOCKET的缓冲区是否有数据到达?
怎么检测SOCKET的缓冲区是否有数据到达? 请指点。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sboom
2003-12-19
打赏
举报
回复
什么BUG??
zero1977
2003-12-19
打赏
举报
回复
fd_set fd;
FD_ZERO(&fd);
FD_SET(sockfd, &fd);
struct timeval timet;
timet.tv_sec = timeout;
timet.tv_usec = 0;
int i = select((int)sockfd + 1, &fd, NULL, NULL, &timet);
if( i <= 0 )
{
#ifndef _WIN32
if( errno == EINTR )
continue;
#endif
return i;
}
if( !FD_ISSET(sockfd, &fd))
return -1;
// 有数据来了~~~~
OnProcess(sockfd)
sevencat
2003-12-19
打赏
举报
回复
看到老外这么说的,我自己并没有碰到过这个BUG。
ydfok
2003-12-19
打赏
举报
回复
To: sevencat(七猫) ( )
能否详细解释一下?
csgo
2003-12-19
打赏
举报
回复
看看返回结果
sevencat
2003-12-19
打赏
举报
回复
MSG_PEEK最好不要用,这个在WIN平台是有BUG的。
sboom
2003-12-19
打赏
举报
回复
用 wsaasyncselect(...) 注册 FD_READ 消息。
tiantian_200
2003-12-19
打赏
举报
回复
同意zero1977(ZERO) 说法
但是不一定是数据来了,也有可能对方关闭套接口或网络断了
sboom
2003-12-18
打赏
举报
回复
用 MSG_PEEK 标志
int recv (sock,buff,len,MSG_PEEK);
sharkhuang
2003-12-18
打赏
举报
回复
select
catyou
2003-12-18
打赏
举报
回复
用select与ioctlsocket联合检测
jian
2003-12-18
打赏
举报
回复
select或者poll调用
sevencat
2003-12-18
打赏
举报
回复
非堵塞套接字,读一下试试看就知道了。
Semigod
2003-12-18
打赏
举报
回复
FD_READ
C# TCP
Socket
分包传送
数据
C# TCP
Socket
分包传送
数据
,这个代码也是从别的地方淘来的,用的还不错。
【网络编程学习记录8】
socket
缓冲区
以及阻塞模式详解_
socket
从输入
缓冲区
读取
数据
后,输入
缓冲区
里面还有值吗(1)
write()/send() 并不立即向网络中传输
数据
,而是先将
数据
写入
缓冲区
中,再由TCP协议将
数据
从
缓冲区
发送到目标机器。一旦将
数据
写入到
缓冲区
,函数就可以成功返回,不管它们有没有
到达
目标机器,也不管它们何时被发送到网络,这些都是TCP协议负责的事情。TCP协议独立于 write()/send() 函数,
数据
有可能刚被写入
缓冲区
就发送到网络,也可能在
缓冲区
中不断积压,多次写入的
数据
被一次性发送到网络,这取决于当时的网络情况、当前线程
是否
空闲等诸多因素,不由程序员控制。
Linux的
socket
缓冲区
Linux的soket
缓冲区
每个
socket
被创建后,都会分配两个
缓冲区
,输入
缓冲区
和输出
缓冲区
。 write()/send() 并不立即向网络中传输
数据
,而是先将
数据
写入
缓冲区
中,再由TCP协议将
数据
从
缓冲区
发送到目标机器。一旦将
数据
写入到
缓冲区
,函数就可以成功返回,不管它们有没有
到达
目标机器,也不管它们何时被发送到网络,这些都是TCP协议负责的事情。 TCP协议独立于 write()/s...
java
socket
缓冲区
_
Socket
缓冲区
疑问
Socket
的发送
缓冲区
大小为64512=63k,接收
缓冲区
大小为8192=8k,server端接收到client连接时启动一个线程,线程进入阻塞状态(接收第二个连接时才开始读取客户端
数据
),客户端程序开始读取本地文件(大于1M)往服务器发送
数据
,每次往输出流1k
数据
,发送到第80次时客户端也阻塞了,也就是前79次的
数据
要么已经
到达
服务器,要么在本地缓存,问题来了,79次*1k/次 - 客户端发送...
查看
socket
缓冲区
数据
_
socket
可读可写条件
欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/45788591
socket
可读可写条件,经常做为面试题被问,因为它考察被面试者对网络编程的基础了解的是不是够深入。要了解
socket
可读可写条件,我们先了解几个概念:1.接收缓存区低水位标记(用于读)和发送缓存区低水位标记(用于写):每个套接字有一个接收低水位和一个...
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章