社区
网络及通讯开发
帖子详情
求助:在使用TClientSocket获取TServerSocket发送的数据的时候,如果两次发送的时间过短,两条数据会被作为一条数据读取,如果Sleep(20)可
csym
2003-04-05 03:34:31
如题,谢谢!
...全文
71
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之
TCl
ient
Socket
和T
Server
Socket
进行TCP长连接通讯
使用
KeepAlive自动
发送
心跳包检测断网
Delphi之
TCl
ient
Socket
和T
Server
Socket
进行TCP长连接通讯,
使用
KeepALive自动
发送
心跳包检测断网,并实现断线重连,经测试可以及时检测到拔掉网线断网情况,具有较高的参考价值
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源码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写文章