IdTCPClient1.ReadTimeout := 1000; if IdTCPClient1.ReadFromStack()>0 then IdTCPClient1.ReadLn()
if fSocket.ReadFromStack(False,1000,False) > 0 then fInfo := fSocket.ReadLn('##',1000,-1); 这样处理也不行, log日志显示还是到发送命令后,没有接受到内容,然后读取的线程也死掉了
while (not self.Terminated) do begin for i := 0 to fListCSocketCS.Count - 1 do//多个socket begin if fCSocket.Connected then fCSocket.Disconnect; fCSocket.Host := TCSocketCS(fListCSocketCS.Objects[i]).Host; fCSocket.Port := TCSocketCS(fListCSocketCS.Objects[i]).Port; fADDR := TCSocketCS(fListCSocketCS.Objects[i]).ADDR; try fCSocket.Connect(1000); except Continue; end; Try if fCSocket.ReadFromStack(False,1000,False) > 0 then fInfo := Trim(fCSocket.ReadLn('##',1000,-1)); //数据处理 finally fCSocket.DisconnectSocket; end; end; end;
if IdTCPClient1.ReadFromStack()>0 then
IdTCPClient1.ReadLn()
fInfo := fSocket.ReadLn('##',1000,-1);
这样处理也不行,
log日志显示还是到发送命令后,没有接受到内容,然后读取的线程也死掉了
begin
for i := 0 to fListCSocketCS.Count - 1 do//多个socket
begin
if fCSocket.Connected then fCSocket.Disconnect;
fCSocket.Host := TCSocketCS(fListCSocketCS.Objects[i]).Host;
fCSocket.Port := TCSocketCS(fListCSocketCS.Objects[i]).Port;
fADDR := TCSocketCS(fListCSocketCS.Objects[i]).ADDR;
try
fCSocket.Connect(1000);
except
Continue;
end;
Try
if fCSocket.ReadFromStack(False,1000,False) > 0 then
fInfo := Trim(fCSocket.ReadLn('##',1000,-1));
//数据处理
finally
fCSocket.DisconnectSocket;
end;
end;
end;