社区
网络编程
帖子详情
阻塞模式下,怎样接收,才不浪费接收时间。
Sander
2005-08-16 01:47:33
方法一。
设置timeout -----
请告诉我,这个要设吗,一般为多少比较适合。
方法二。
获得驱动缓冲的数据长度
recv(s, buf, len, flag)
这个len是驱动缓冲的数据长度。
请问哪种方法,比较好?或者有其他方法
...全文
345
23
打赏
收藏
阻塞模式下,怎样接收,才不浪费接收时间。
方法一。 设置timeout ----- 请告诉我,这个要设吗,一般为多少比较适合。 方法二。 获得驱动缓冲的数据长度 recv(s, buf, len, flag) 这个len是驱动缓冲的数据长度。 请问哪种方法,比较好?或者有其他方法
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Sander
2005-08-24
打赏
举报
回复
ok,结帖
guanglin_lv
2005-08-23
打赏
举报
回复
多线程+异步模式
最好的方法了
guanglin_lv
2005-08-23
打赏
举报
回复
当然是要采用多线程的,
本人刚开始搞WINCE, 请大家多多指教
我的QQ是75039960
MSN: guanglin_lv@msn.com
guanglin_lv
2005-08-23
打赏
举报
回复
fd_set fdRead;
SOCKET s;
TIMEVAL aTime;
char recvBuf[1024];
int recvLen;
aTime.tv_sec = 1;
aTime.tv_usec = 0;
FD_ZERO(&fdRead);
FD_SET(s,&fdRead);
ret = select(0,&fdRead,NULL,NULL,&aTime);
if (FD_ISSET(pSocket->m_socket,&fdRead))
recvLen = recv(pSocket->m_socket,recvBuf, 1024,0);
chenzunshi3
2005-08-22
打赏
举报
回复
http://www.somade.com/是个很专业的技术社区,去那里找找吧,或许有你要的答案~
basesky
2005-08-22
打赏
举报
回复
建议楼主采用异步方式,阻塞模式弄不好容易死掉哦。
Sander
2005-08-22
打赏
举报
回复
哦,忘了说明, 在wince.net 4.2一下, 5。0不知道
Sander
2005-08-22
打赏
举报
回复
TO: yzkzero(U)
没错,它有这些function,编译也不会有问题,但你可以试试,它就是不会工作。
Sander
2005-08-19
打赏
举报
回复
这里的超时,比方说1秒,是不是,只要你没有收到你要的字节数,就要等一秒。
----
为什么说用ioctlsocket()不好呢,这样我就知道最起码可以收这个数,肯定有呀。
不用浪费时间呀。
yzkzero
2005-08-19
打赏
举报
回复
WinCE只能用堵塞,不太可能吧,微软本来就不推荐用堵塞的方式。
况且在MSDN里,各种模式都有WinCE版本的,WSAEventSelect, 重叠IO的 WSASend, WSARecv 都可以在WinCE用的啊?
Sander
2005-08-19
打赏
举报
回复
TO: nuaawenlin(飘人)
我这是使用多线程呀, read, send都是呀。
nuaawenlin
2005-08-19
打赏
举报
回复
使用多线程
softrain
2005-08-18
打赏
举报
回复
我是说方法一,也就是设置超时时间是好的方法,最好使用它。
使用ioctlsocket(s, FIONREAD, &ulByteNum);也不好,降低了系统性能。最好是只管收,收到一定数据就处理,如果一次过来的数据太多,可以边处理边接收。
allen_zhaozhencn
2005-08-18
打赏
举报
回复
同步操作时设置超时
Sander
2005-08-17
打赏
举报
回复
up once.
Cocoky
2005-08-16
打赏
举报
回复
顶
Sander
2005-08-16
打赏
举报
回复
To:softrain(敢笑杨过不痴情)
不明白你说的什么:)
获得缓冲的数据长度可以通过IOCtrl
ioctlsocket(s, FIONREAD, &ulByteNum);
To:dirdirdir3(风)
对方数据是不定的,即使是定的,也不是你收到的,记住这个是tcp, 流模式。
dirdirdir3
2005-08-16
打赏
举报
回复
你预备着对方会发送多少字节来就接收多少个字节。
softrain
2005-08-16
打赏
举报
回复
最好方法一用上。另外没听说可以获取缓冲区长度,RECV是阻塞的,来数据才会返回,或者设置了超时到超时返回,数据长度从数据中获取。
Sander
2005-08-16
打赏
举报
回复
我这个是winCE的系统,必须是block的,
block也可以放在线程呀。
加载更多回复(3)
Linux UDP socket 设置为的非
阻塞
模式
与
阻塞
模式
区别
- **非
阻塞
模式
**:与此相反,在非
阻塞
模式
下,如果执行I/O操作的条件不满足,则立即返回一个错误码或特定值,而不是挂起进程。 #### 三、UDP Socket
模式
详解 ##### 3.1 UDP Socket 的
阻塞
模式
在
阻塞
模式
下,UDP ...
Protues 51单片机 串口不定长
接收
非
阻塞
模式
.zip
在这个"Protues 51单片机 串口不定长
接收
非
阻塞
模式
.zip"的压缩包中,包含了一个51单片机的串口通信实例,该实例重点展示了如何在非
阻塞
模式
下
接收
不固定长度的数据帧。 51单片机是经典的8位微控制器,其内部结构...
阻塞
通信和非
阻塞
通信
这种
模式
下,虽然通信的控制流清晰,易于理解和实现,但可能导致资源的
浪费
,尤其是在通信
时间
较长的情况下,处理器的计算资源会被闲置,影响整体效率。 #### 3. 非
阻塞
通信 非
阻塞
通信则是为解决
阻塞
通信效率低下...
C++非
阻塞
式读取UDP,串口方式总结.txt
对于程序功能单一的传感器
接收
解析程序,可以采用
阻塞
式的方式,但是对于实时性要求高的复杂功能程序,不能因为传感器没有新数据,而停止不前,于是可以考虑最多等待多长
时间
,如果没有数据后,程序也正常向下执行:
商业编程-源码-多线程,多
接收
模式
串口类LsComm.zip
2. **非
阻塞
模式
**:即使数据不完整,也会立即返回当前
接收
到的数据。这种
模式
适用于实时性要求高、数据量不确定的场景。 3. **中断驱动
模式
**:当有数据到达时,硬件会产生中断通知CPU,程序可以及时响应。这种...
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章