Socket控件能否双向传输?
很少使用Socket控件,发现它只能单向传输数据,所以,我只能用类似下面的方法,采用两个socket,一个用于发送,一个用于接收。请问有没有知道有什么更好的处理方式?
procedure TDM.TcpClient1Connect(Sender: TObject);
var
str1: string;
begin
str1:= '#1#'+ gConfig.stdid+ ','+ gConfig.stdid;
TcpClient1.Sendln(str1);
TcpClient1.Disconnect;
TcpClient2.RemoteHost:= gConfig.host;
TcpClient2.RemotePort:= inttostr(gConfig.port- 1);
TcpClient2.Connect;
end;
procedure TDM.TcpClient2Connect(Sender: TObject);
var
str1: UTF8STRING;
str2, cmd, sInfo: string;
a: integer;
begin
str1:= TcpClient2.Receiveln;
str2:= UTF8toansi(str1);
cmd:= readBetween(str1, '#', '#', a);
sInfo:= copy(str2, a, length(str2));
if cmd= '101' then begin
UserInfo:= sInfo;
DeviceState:= 1;
end;
TcpClient2.Disconnect;
end;