社区
网络及通讯开发
帖子详情
[高级问题2]请问大家一个网络编程的方法问题?
佣工7001
2004-12-14 05:26:44
我的程序中采用TServerSocket和TClientSocket编程,NonBlocking方式。
问题是在某个时间我的Client程序需要向服务器连续发出两个命令,但是服务器端在一个包里面收到了!请问作过类似程序的大虾,如果不采用自己封包的格式,怎末能保证连续发出的包,对方分两次收到呢?
...全文
168
4
打赏
收藏
[高级问题2]请问大家一个网络编程的方法问题?
我的程序中采用TServerSocket和TClientSocket编程,NonBlocking方式。 问题是在某个时间我的Client程序需要向服务器连续发出两个命令,但是服务器端在一个包里面收到了!请问作过类似程序的大虾,如果不采用自己封包的格式,怎末能保证连续发出的包,对方分两次收到呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
佣工7001
2004-12-14
打赏
举报
回复
回 netsys2(来电!) ,这下有决心了,看来这能这样做了,多谢指点。
netsys2
2004-12-14
打赏
举报
回复
SOCKET编程中,你发的数据都是看成“数据流”的方式,
不管你是怎么发送,例如这次发10个,下次20,从接收者来看都是10+20+。。。。
因此为了区分每个包,你:
必须自定义应用层协议,通过包头自己来区分两个包!
这是全球SOCKET编程人员的标准用法!
我有个非标准做法:
每发一个包,SLEEP若干毫秒,对方就可以分开收了。
但这太影响效率了!
不推荐使用!
随便说一句,
为了提高传输效率,TCP层专门有个Nagle算法,用于将小包组成大包再发送。
因此不要再乱想了,
记住:SOCKET的数据是数据流,有头无尾,你要判断尾巴,就得自己设计!
Maconel
2004-12-14
打赏
举报
回复
呵呵,没做过,只是提供一个思路。
Maconel
2004-12-14
打赏
举报
回复
client发完一个包后,等待server的确认信息,然后发下一个包
Java
网络编程
第三版.pdf
Java
网络编程
第三版.pdf
linux入门到学懂
高级
编程书集
linux编程指南+linux
网络编程
+Linux+C函数库参考手册+Linux必学的60个命令+编程设计等
Python3.2.3官方文档(中文版)高清完整PDF
Python3.2.3官方文档(中文版) 由笔者自己翻译,有不当之处希望在博客上相互交流
WPF仿QQ关闭源码
WPF写的仿QQ关闭的源码 WPF类似QQ关闭例子
C++经典程序
收集的一些经典的例程,关于C++的,希望大家有用
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章