当前位置:主页>仓库管理软件> 列表

IDTCPClient发送#$00时为什么在接收以收不到? 找销售管理

库存管理软件版1楼: 本人新手,我用IDTCPClient向对方端口发送一组数据,例如:#$31 #400 #$32 这3个字符,但对方用TCPserver事件TcpServer1Accept中用s:=clientsocket.Receiveln()接收,但收到是
只有#$31,请问为什么会这样

2楼: 请教高手呀,谁帮我一下,先谢谢了 如销售管理

3楼: 遇到 $00, 字符可能就中止了,你可以定义一个流来发送和接收.

4楼: 发送用流还是接收用流还是都用流,
因为我程序要和单片机通讯,要是接收用流的话,那单片机怎么收呀

5楼: 为什么下边的收不到呢
发送
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;

6楼: 接受答案了.