如何在WINSOCK中使用流(stream),把数据结构体内的数据放到流中发送出去??? ( 积分: 25 )

  • 主题发起人 主题发起人 subcom
  • 开始时间 开始时间
S

subcom

Unregistered / Unconfirmed
GUEST, unregistred user!
比如:
data =packed record
name:array[0..15] of char;
id:integer;
end;
stream() //??????
send(stream,sizeof(stream),0); //winsock 中的SEND
 
比如:
data =packed record
name:array[0..15] of char;
id:integer;
end;
stream() //??????
send(stream,sizeof(stream),0); //winsock 中的SEND
 
xData:Data;
Stream.write(PChar(@xData)^,sizeof(xData));
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1466867
 
不是啊,比如有好几个结构体,我想把结构体内的每个字段一个一个的放到STREAM中在一次性发出去。比如:
data =packed record
name:array[0..15] of char;
id:integer;
end;
head =packed record
shead:array[0..15] of char;
des:integer;
end;
stream.read(data.name);
stream.read(data.id);
stream.read(head.shead);
stream.read(hea.des);
send(stream,sizeof(stream),0); //winsock 中的SEND
 
xData:Data;

Stream.write(PChar(@xData)^,sizeof(xData));

Stream.read(PChar(@xData)^,sizeof(xData));
读出来就可以使用结构了
 
如果是多个的话你就顺序写,顺序读就可以了
 
刚才发错了是这样的
,比如有好几个结构体,我想把结构体内的每个字段一个一个的放到STREAM中在一次性发出去。比如:
data =packed record
name:array[0..15] of char;
id:integer;
end;
head =packed record
shead:array[0..15] of char;
des:integer;
end;
stream.write(data.name);
stream.write(data.id);
stream.write(head.shead);
stream.write(hea.des);
send(stream,sizeof(stream),0); //winsock 中的SEND
 
哎!我是说不明白了,你自己想吧
 
我SEND的时候怎么发送啊.
 
如果你只是想发送结构,可以
xData;Data;
send(PChar(@xData)^,sizeof(xData));
接收
xData:Data;
recv(PChar(@xData)^,sizeof(xData));
 
多人接受答案了。
 
后退
顶部