1,594
社区成员




type
TTmpData = record
Name, Data: string[200];
CMD: string[50];
end;
//调用SendMsg下面这段不执行,发送字符串用writeln和readln就没问题
procedure TForm1.IDTCPServer1Execute(AContext: TIdContext);
var
Buf: TIdBytes;
TmpData: TTmpData;
begin
AContext.Connection.IOHandler.ReadBytes(Buf, SizeOf(TmpData)); //第一次连接(下面ConnectSer)执行到这一步就没往下执行了。
BytesToRaw(Buf, TmpData, SizeOf(TmpData));
mmo_Rec.Lines.Add(TmpData.Data);
end;
//发送数据到服务端
procedure TForm1.SendMsg;
var
Buf: TIdBytes;
TmpData: TTmpData;
begin
if not IdTCPClient1.Connected then Exit;
TmpData.Name := 'GG';
TmpData.Data := mmo_Send.Text;
RawToBytes(TmpData, SizeOf(TmpData));
IdTCPClient1.IOHandler.Write(Buf);
end;
//连接到服务器
procedure TForm1.ConnectSer;
begin
IdTCPClient1.Host := edt_CIP.Text;
IdTCPClient1.Port := StrToInt(edt_CPort.Text);
IdTCPClient1.Connect;
IdTCPClient1.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8();
end;