如何用TClientSocket和TServerSocket实现自定义数据结构的收发?

star_of_light 2003-11-19 10:36:35
比如,如何收发记录数据;记录格式如下:
USR=Record
id:String;
name:String;
PWD:String;
end;
...全文
57 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
insert2003 2004-02-13
  • 打赏
  • 举报
回复
TMyRecord1=record
MyName1 : string[10];
end;

TMyRecord2=record
MyName2 : array[0..20]of Char;
end;

TMyRecord=record
head :TMyrecord1;
name :TMyrecord2;
end;


var
buf : TMyRecord
begin
Socket.SendBuf(buf,sizeof(TMyRecord));
end;
topgun2 2004-02-11
  • 打赏
  • 举报
回复
看来你没有做过,底层.
这样的情况,关键是还要定义一个包头结构,定义消息的长度....
先收包头,然后....
insert2003 2004-02-11
  • 打赏
  • 举报
回复
D7里怎么没有SendBuffer???
chaiqingfeng 2004-02-02
  • 打赏
  • 举报
回复
结构体中的类型改成char型的,用sendbuffer发送,接收方定义相同的结构体或使用一个大的数组接收
quansui 2003-11-24
  • 打赏
  • 举报
回复

TMyRecord=record
id : integer;
Name : string[20];
end;
happyboy 2003-11-24
  • 打赏
  • 举报
回复
记录中不能用string类型,string只是一个指针
TMyRecord=record
MyName : array[0..20]of Char;
end;

var
buf : TMyRecord
begin
Socket.SendBuffer(buf,sizeof(TMyRecord));
end;
这样就行了.
flfljh 2003-11-24
  • 打赏
  • 举报
回复
当然行啊
vargent77 2003-11-22
  • 打赏
  • 举报
回复
一般可以的,没问题,
挺好用:好像sendbuffer(结构指针,长度,长度)
不过这个长度要注意,如果你用的是char,往往用length 得出的结果不准!呵呵,可能是我菜才有这样的问题
dongmenbianxue 2003-11-22
  • 打赏
  • 举报
回复
这种做法不太好吧,如果发生粘包现像,就不好处理了~

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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