发送数组一般定义为: array[0..n] of Byte 或 array[0..n] of Char。 发送示例如下:var I: Integer; Buf: array[0..100] of Byte; begin for I := 0 to ServerSocket1.Socket.ActiveConnections-1 do begin if ServerSocket1.Socket.Connections[I].RemoteAddress=目标客户端IP then begin ServerSocket1.Socket.Connections[I].SendBuf(Buf, SizeOf(Buf)); end end
数组定义为 "M : array[0..5] of string" 时,由于string不固定长度,所以不能直接发送这样的数组。但是可以修改为:M : array[0..5] of string[255],然后发送。
其实可以先测试需要传输数组的长度,再进行传输,就可以免去为String设置定长的麻烦了
假如是定义了M array[0..n] of Byte 这样把Qurry的查询结果的值赋予M
var S: String; M: array[0..255] of Byte; begin S := ADOQuery1.FieldValues['xxx']; // 假设S的长度小于255 Move(S[1], B[0], Length(S)); ... end;
更正: var S: String; M: array[0..255] of Byte; begin S := ADOQuery1.FieldValues['xxx']; // 假设S的长度小于255 Move(S[1], M[0], Length(S)); ... end;
发送示例如下:var
I: Integer;
Buf: array[0..100] of Byte;
begin
for I := 0 to ServerSocket1.Socket.ActiveConnections-1 do
begin
if ServerSocket1.Socket.Connections[I].RemoteAddress=目标客户端IP then
begin
ServerSocket1.Socket.Connections[I].SendBuf(Buf, SizeOf(Buf));
end
end
这样把Qurry的查询结果的值赋予M
S: String;
M: array[0..255] of Byte;
begin
S := ADOQuery1.FieldValues['xxx'];
// 假设S的长度小于255
Move(S[1], B[0], Length(S));
...
end;
var
S: String;
M: array[0..255] of Byte;
begin
S := ADOQuery1.FieldValues['xxx'];
// 假设S的长度小于255
Move(S[1], M[0], Length(S));
...
end;