我用idtcpclient连接对方的,当我用下列语句向对方发送edit1中的内容马上成功而且对方会有respone,并发送回复包给我,我如何显示到richedit中?我试了好久都没有成功(用writeln,readln成功过,但是对方回复的包会在发送包的基础上加回码,而由于writeln含有换行符,结果当readln时会把这个回码变没了)
procedure Tsockfrm.Button1Click(Sender: TObject);
var
  txt:pchar;
  str1:tstrings;
  str2:string;
begin    
    getMem(txt,Length(edit1.Text)+1);
    ZeroMemory(txt,Length(edit1.Text)+1);
    txt:=Pchar(edit1.Text);
    idtcpclient1.WriteBuffer(txt^,length(edit1.Text));
 end;

解决方案 »

  1.   

    把你的回车符换成特定的字符,然后当ln发送就可以了!
    或者,用stream也可以!
      

  2.   

    writeln只有三种结束符(换行、回车、换行+回车),readln也只能读这三种符号,用stream怎么用?能给个代码吗
      

  3.   

    rocedure TFM_Main.Relogin(P_IP:string) ;
    var
     context:string;
     MyStream: TMemoryStream;
    begin
    Try
      context:='MGXSH';    // M+gxsh +某人
      MyStream := TMemoryStream.Create;
      MyStream.Clear;
      MyStream.Write(Context[1], Length(Context));
      try
       NMUDP_Time.RemoteHost:= P_IP;
       NMUDP_Time.SendStream(MyStream);
      except
        application.MessageBox('无法建立连接!','连接错误!',0);
      end;
     finally
        MyStream.Free;//
      end;
    end;