是搞网络聊天室的,
用UDP协议传,
老是提示出现  stream write error 流写入错误?
怎么解决呀?
var
tmpstr:string;
mystream:TMemoryStream;
begin
NMUDP1.ReportLevel := Status_Basic;
tmpstr:=edit1.Text ;
NMUDP1.RemoteHost :=trim(edit2.Text);
 mystream:=Tmemorystream.Create ;          ?主要是以下部分错误!!
try
  mystream.Write(tmpstr[1],length(edit1.Text));
  nmudp1.SendStream (mystream);
finally
    MyStream.Free;
 end;
先谢谢了,

解决方案 »

  1.   

    为什么要用流呢??!! hehe^^
      

  2.   


     mystream:=Tmemorystream.Create ;          ?主要是以下部分错误!!
    try
      mystream.Position := 0;
      mystream.Write(tmpstr[1],length(edit1.Text));
      nmudp1.SendStream (mystream);
    finally
        MyStream.Free;
     end;
      

  3.   

    len: integer;
    .........len := length(tempstr);
    mystream.writebuffer(len,sizeof(len));
    if len <> 0 then
       mystream.writebuffer(tempstr[1],len);
      

  4.   

    To naughtyboy() :len: integer;
    .........len := length(tempstr);
    mystream.writebuffer(len,sizeof(len)); //这里sizeof(len)的值为4,求的不是字符串的长度,而是整数类型的长度。同样,要求字符串长度只可以使用length,若是使用sizeof,求的的只是指向一个AnsiString结构的指针的长度,还是4。
    if len <> 0 then
       mystream.writebuffer(tempstr[1],len);