社区
网络及通讯开发
帖子详情
求助:在使用TClientSocket获取TServerSocket发送的数据的时候,如果两次发送的时间过短,两条数据会被作为一条数据读取,如果Sleep(20)可
csym
2003-04-05 03:34:31
如题,谢谢!
...全文
74
10
打赏
收藏
求助:在使用TClientSocket获取TServerSocket发送的数据的时候,如果两次发送的时间过短,两条数据会被作为一条数据读取,如果Sleep(20)可
如题,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
csym
2003-04-12
打赏
举报
回复
谢谢各位的答复,我已经按照字节流的方法作好了,每次传递固定大小的结构:
typedef struct
{
int Type;
char Data[200]; //根据type的不同按不同的结构写入数据
}PACKET;
在程序中设置一个接收缓冲区接收传递的数据,从缓冲区中读出数据;
因为我的程序是网络的棋牌游戏,所以固定大小的传递也不会产生很大的影响。
sxy790827
2003-04-11
打赏
举报
回复
确实是个难题
netying
2003-04-11
打赏
举报
回复
如果是这样的格式,怎样知道哪里是开头?就是说如果发送数据的速度很快的话,接收的时候是不是每个包应该有一个唯一可以辨别的包标志?这个标志不太好选择呀
BCB
2003-04-11
打赏
举报
回复
最简单的格式:
前两个字节放长度,后面放实际内容,
这样,每次读数据,先读两字节,取得长度,再以这个长度
第二次去读包的字节内容,
边界不是很清楚了,格式最好稍复杂一点,象QQ都有一个
Socket会话命令集,就象网络的会话层协议
netying
2003-04-11
打赏
举报
回复
怎么样才比较好呀
pp616
2003-04-10
打赏
举报
回复
通讯啊。为一个单向发送呢。
你可以发一个然后等一个回应。收到回应在发送下一个数据包啊。
netying
2003-04-09
打赏
举报
回复
up...
netying
2003-04-09
打赏
举报
回复
BCB老大请问您:您的包格式中,您觉得用什么做包标记比较好?
还有数据流用什么类型比较好?
cdsnti
2003-04-05
打赏
举报
回复
Sleep(20)可不算是解决问题的方法,你可能是用的 sendtext(),试一下用二进制数据流方法,自己定义通信传输的数据包结构就可以解决问题,你试一下,不行的话把代码贴上来我帮你修改。
BCB
2003-04-05
打赏
举报
回复
TCP协议是数据流是无边界的,两次发送的数据之间并没有界限,会
一次收到合并的包,解决这个问题很简单:自已定义数据流的格式,
在格式中放上每个包的长度.靠你自已发挥了,用Sleep无济于事.
如我常用的包格式定义:
包标记[2B],命令标志[2B],数据字节[2B],数据流.
UDP是有边界的协议,不同时间发送的包,决不会混在一起.
如此而已.
Delphi T
Server
Socket
和
TCl
ient
Socket
两个组件的基本用法
笔者在工作中遇到对局域网中各工作站与服务器之间进行
Socket
通信的问题。现在将本人总结出来的T
Server
Socket
和
TCl
ient
Socket
两个组件的基本用法写出来,希望与您分享。 Cl
ient
Socket
组件为客户端组件。它是通信的请求方,也就是说,它是主动地与服务器端建立连接。
Server
Socket
组件为服务器端组件。它是通信的响应方,也就是说,它的动作是监听以及被动接受客户端的连接请求,并对请求进行回复。
Server
Socket
组件可以同时接受一个或多个Cl
ient
Socket
组件的连接请求,并与每个Cl
ient
Socket
组件建立单独的连接,进行单独的通信。因此,一个服务器端可以为多个客户端服务。 设计思路
Delphi之
TCl
ient
Socket
和T
Server
Socket
进行TCP长连接通讯
使用
KeepAlive自动
发送
心跳包检测断网
Delphi之
TCl
ient
Socket
和T
Server
Socket
进行TCP长连接通讯,
使用
KeepALive自动
发送
心跳包检测断网,并实现断线重连,经测试可以及时检测到拔掉网线断网情况,具有较高的参考价值
delphi源码T
Server
Socket
和
TCl
ient
Socket
文件传输
delphi源码T
Server
Socket
和
TCl
ient
Socket
文件传输
使用
TCl
ient
Socket
和T
Server
Socket
写的端口映射
使用
TCl
ient
Socket
和T
Server
Socket
写的端口映射供初学
Socket
编程的Delphi学者参考程序中设置最大
会
话数为
20
Delphi之T
Server
Socket
和
TCl
ient
Socket
多线程传输
Delphi之T
Server
Socket
和
TCl
ient
Socket
多线程传输文字例子
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章