社区
网络通信/分布式开发
帖子详情
TCP使用RECEIVE函数
圣手书生肖让
2013-11-24 05:30:13
当在Client端使用Receive函数的时候,如果Sever端没有发东西,程序就阻塞了。
这种使用实在太困惑了,有没有办法让它先检测一下呢?
Server端这个问题还不突出,因为Server端可以使用多线程。
但是Client端只有一个线程,一旦阻塞了就难办了。
...全文
547
6
打赏
收藏
TCP使用RECEIVE函数
当在Client端使用Receive函数的时候,如果Sever端没有发东西,程序就阻塞了。 这种使用实在太困惑了,有没有办法让它先检测一下呢? Server端这个问题还不突出,因为Server端可以使用多线程。 但是Client端只有一个线程,一旦阻塞了就难办了。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
圣手书生肖让
2013-12-27
打赏
举报
回复
感谢各位的回答,原来以为客户端可以不用线程,现在明白不是这样滴。
orxor
2013-12-09
打赏
举报
回复
不要用阻塞模式
tcmakebest
2013-12-09
打赏
举报
回复
接收数据有同步和异步之分,同步接收逻辑控制简单,但会阻塞,需要单开线程,异步接收逻辑控制复杂,但效率高,不阻塞。 楼主根据需要选择吧。
tcmakebest
2013-12-01
打赏
举报
回复
要么开线程,要么用异步,线程比较简单。
「已注销」
2013-12-01
打赏
举报
回复
采用异步IO模式。用一个线程根本不叫解决,只不过那个线程跟界面无关,你体会不懂卡而已
孤独de猫
2013-11-25
打赏
举报
回复
Client 也可以使用线程来解决这个问题。发送和接收线程,共用一个socket。
Socket 类封装 改进版
实现中的几个注意点: 1 Socket类几个成员
函数
的访问权限为protected 使Socket类可以进行继承 但不允许私自
使用
... 2
TCP
Client类的send re
ceive
方法
使用
了著名的writen readn 来源UNP 实现 解决了
TCP
的粘包问题 3
TCP
Se
【LWIP】
tcp
_re
ceive
函数
分析
1.调用流程:
tcp
_input接收IP层递交上来的数据包,... 根据
TCP
报头,遍历
tcp
_active_pcbs链表,
tcp
_tw_pcbs链表,
tcp
_listen_pcbs链表,查找相应
TCP
控制块, 若在
tcp
_active_pcbs链表中匹配,调用
tcp
_process()。
lwip --- (十八)
TCP
输入输出
函数
1
这节从
tcp
_re
ceive
函数
入手,逐步深入了解控制块各个字段的意义以及整个
TCP
层的运行机制,足足600行,神想吐血。源码注释的该
函数
功能为:检查收到的数据段是不是对已发数据段的确认,如果是,则释放相应发送...
TCP
协议下的recv
函数
功能:不论是客户还是服务器应用程序都用recv
函数
从
TCP
连接的另一端接收数据。 参数一:指定接收端套接字描述符; 参数二:指明一个缓冲区,该缓冲区用来存放recv
函数
接收到的数据; 参数三:指明buf的长度; ...
《
TCP
/IP详解 卷2》 笔记:
TCP
的输出
函数
:
tcp
_output
tcp
_output
函数
负责发送
TCP
报文段,代码中有很多地方都调用了它。
tcp
_usrreq
函数
在多种请求处理中调用了它:处理PRU_CONNECT,发送初始SYN;处理PRU_SHUTDOWN,发送FIN;处理PRU_RCVD,应用进程从socket接收缓冲区...
网络通信/分布式开发
1,593
社区成员
32,964
社区内容
发帖
与我相关
我的任务
网络通信/分布式开发
Delphi 网络通信/分布式开发
复制链接
扫一扫
分享
社区描述
Delphi 网络通信/分布式开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章