比如定义了 M : array[0..5] of string
怎么样在ServerSocket中把M发送给客户端
备(不能把M[I]合并然后在客户端分解)

解决方案 »

  1.   

    发送数组一般定义为: 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
      

  2.   

    数组定义为 "M : array[0..5] of string" 时,由于string不固定长度,所以不能直接发送这样的数组。但是可以修改为:M : array[0..5] of string[255],然后发送。
      

  3.   

    其实可以先测试需要传输数组的长度,再进行传输,就可以免去为String设置定长的麻烦了
      

  4.   

    假如是定义了M array[0..n] of Byte
    这样把Qurry的查询结果的值赋予M
      

  5.   

    var
      S: String;
      M: array[0..255] of Byte; 
    begin
      S := ADOQuery1.FieldValues['xxx'];
      // 假设S的长度小于255
      Move(S[1], B[0], Length(S));
      ...
    end;
      

  6.   

    更正:
    var
      S: String;
      M: array[0..255] of Byte; 
    begin
      S := ADOQuery1.FieldValues['xxx'];
      // 假设S的长度小于255
      Move(S[1], M[0], Length(S));
      ...
    end;