IDTCPClient发送#$00时为什么在接收以收不到???(20分)

  • 主题发起人 主题发起人 qet006
  • 开始时间 开始时间
Q

qet006

Unregistered / Unconfirmed
GUEST, unregistred user!
本人新手,我用IDTCPClient向对方端口发送一组数据,例如:#$31 #400 #$32 这3个字符,但对方用TCPserver事件TcpServer1Accept中用s:=clientsocket.Receiveln()接收,但收到是
只有#$31,请问为什么会这样
 
请教高手呀,谁帮我一下,先谢谢了
 
遇到 $00, 字符可能就中止了,你可以定义一个流来发送和接收.
 
发送用流还是接收用流还是都用流,
因为我程序要和单片机通讯,要是接收用流的话,那单片机怎么收呀
 
为什么下边的收不到呢
发送
procedure TForm2.Button1Click(Sender: TObject);
var
Stream:TMemoryStream;
begin
Stream:=TMemoryStream.Create;
try
Stream.Write('abc',3);
IdTCPClient1.WriteStream(Stream,True,True);
finally
Stream.Free;
end;
end;

接收:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
Stream:TMemoryStream;
Str:array[0..99]of char;
begin
Stream:=TMemoryStream.Create;
AThread.Connection.ReadStream(Stream,-1,False);
Stream.Seek(0,soFromBeginning);
ServerNote.Lines.LoadFromStream(Stream);
Stream.Read(Str,SizeOf(Str));
ServerNote.Lines.Add(str);
end;
 
接受答案了.
 
后退
顶部