我想用UDP实现网络通信,我想通过IDUDPServer传回一个TstringList类型数据。
我在其UDPServerUDPRead事件中,这样写的,编译能通过。    filelst := TStringList.Create;
    FindAll(rect,filelst);
    //开始返回列表
    ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,filelst,sizeof(filelst));
    FreeAndNil(filelst);但是我在UDPClient中进行接收,编译也通过,但运行就报错。
  filelst := TStringList.Create;
  self.UDPClient.ReceiveBuffer(filelst,4096);//这个数值怎么付??
  self.ListView1.Items.Clear;
  for i:= 0 to filelst.Count -1 do //报错!!!!高手有没有办法??

解决方案 »

  1.   

    你的意思是这样吗?
        filelst := TStringList.Create;
        FindAll(rect,filelst);
        rect := filelst.Text;
        ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,rect[1],Length(rect));
        FreeAndNil(filelst);
    可我怎么取呢?这样我取到的数据不对呀?。
      filelst := TStringList.Create;
      rect := self.UDPClient.ReceiveString();
      filelst.Text:= rect;
      

  2.   

    filelst.Text 
    就可, 會自動帶轉行符的,
    到另外一邊, 再用另外一個TStringList.Text  的東西加上去就可
      

  3.   

    那么我问一下:
     通过ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,rect[1],Length(rect));
    这样子发送本文是不是有长度限制!!??????
      

  4.   

    不对呀, 我这样发送时候一般是好的,
    当strings特别大时候,就出现message too long的错误!!