一个socket发送数的问题???有通讯方面的高手请进来指教一下、 ( 积分: 50 )

  • 主题发起人 主题发起人 hjp0214
  • 开始时间 开始时间
字符串和 array [0..1023] of byte 怎样互相转换啊
 
给你一个完整例子:
发送端:
var
i : Word;
str : String;
Begin
str := 'My Data Packet';
i := Length(str);
move( i , buffer[0], sizeof(word) );
move( str[0], buffer[sizeof(word)], i );
socket.sendbuf( buffer, 1024 );
End;

接收端:
var
i : Word;
str : String;
Begin
socket.recvbuf( buffer, 1024 );
move( buffer[0], i, sizeof(word) );
SetLength( str, i );
move( buffer[sizeof(word)], str[0], i );
End;

这类问题关键是要搞清不同类型的数据在内存中的存储表示。
 
string类型是从1开始的,所以str[0]应该改为str[1]
 
>>所以str[0]应该改为str[1]
对罗,有段时间没有Delphi了,糊涂了,抱歉!
 
后退
顶部