Indy 怎样发送数据,例如
Var  Buff:array of string
setlength(buff,3);
buff[0]:='1';
buff[1]:='2';
buff[2]:='1';
TCPClient.WriteBuffer(Buff,length(buff));
接收TCPClient.ReadBuffer(buff,3);
为什么会接收不到数组呀,,哪位朋友帮忙解决下,,附上源码

解决方案 »

  1.   

    简单,你这样发送的是一个指针,用下面的
    TCPClient.WriteBuffer(Buff[0],length(buff)); 
    这样ok了
      

  2.   

    接收 TCPClient.ReadBuffer(buff[0],3); 
      

  3.   

    我现在什么数组都发不出去,。ReadBuffer接收的永远是空。。晕掉
      

  4.   

    TCPClient.WriteBuffer(Buff,length(buff)); 
    这里用length(buff)是不对的,这只是数组的长度(个数),而不是数组包含内容的字节数
    TCPClient.WriteBuffer(Buff,SizeOf(s)*length(s));//s不能是字符串数组ReadBuff也一样 长度要写一个大一点的值(缓冲区的长度)
      

  5.   

    开始没有看你的声明Var     Buff:array   of   string ;
    竟然是字符串数组!!!
    必须一个字符串的发送
    TCPClient.WriteBuffer(Buff[0][1],length(Buff[0])); 
    算了,不说多了,建议继续去深造吧
      

  6.   

    哎,,我还是用TStrings 算了,,看了没得办法了,上面那位任兄,来这提问,不是在深造么!