可以这样传数据吗?

larryuan 2000-07-21 03:50:00
在winsock中用sendtext,sendbuf等传数据,
我想在一次中传送这样的数据:
前一段是String型的,
后一段是一个结构,如record,tstringlist等

接收方分别接收.

如何才能在一次中传送,可以这样做吗?
...全文
188 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
larryuan 2000-07-25
  • 打赏
  • 举报
回复
to alin:
可以直接receive一个record吗
Socket.RecvBuf(MyData,SizeOf(TMyData));
larryuan 2000-07-24
  • 打赏
  • 举报
回复
to iamkylix:
我是想在前一部分放协议的命令代码,
后一部分放数据,但数据的长度,类型不一致.
larryuan 2000-07-24
  • 打赏
  • 举报
回复
to alin:
可以这样吗,我一直觉得不能这么做,
发送时用了两次send
接收时能在一次onreceive中全部接收到吗?
alin 2000-07-24
  • 打赏
  • 举报
回复
先接收STRING字段长度的内容,一般是固定长的,如不是固定长的,要有长度的定义,再接收后面的,如
SendStr:String[10];
TMyData=Record
ABC:Integer;
FGH:String[10];
end;

发送:
Var
MyData:TMyData;
Begin
SendStr :='1wwwda';
MyData.ABC :=10;
MyData.FGH :='dsad';

Socket.SendText(SendStr);
Socekt.SendBuffer(MyData,SizeOf(TMyData));
End;

接收:
Var
RevLen:Integer;
Buffer:Array[0..10] of Char;
MyData:TMyData;
Begin
Socket.RecvBuf(Buff,10); //只接收前面的内容
Socket.RecvBuf(MyData,SizeOf(TMyData)); //后续的内容
end;
zoao 2000-07-23
  • 打赏
  • 举报
回复
g
IAmKylix 2000-07-23
  • 打赏
  • 举报
回复
服务器端和客户端要有自己的协议,指明数据格式及长度。
larryuan 2000-07-21
  • 打赏
  • 举报
回复
to wsf:
能详细点吗
wsf 2000-07-21
  • 打赏
  • 举报
回复
用指针
larryuan 2000-07-21
  • 打赏
  • 举报
回复
协调一致的意思是说接收方也要一次全收到吗?
我想分两次接收.
hyzx2000 2000-07-21
  • 打赏
  • 举报
回复
服务器端和客户端必须协调一致,是可以实现的。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧