Indy的TCPClient联接问题(200分)(200分)

  • 主题发起人 主题发起人 JafyLiu
  • 开始时间 开始时间
J

JafyLiu

Unregistered / Unconfirmed
GUEST, unregistred user!
用Indy的TCPClient发数据(WriteStream),TCPServer收数据(ReadStream)。第一次接收正常,可是断开联接后TCPClient.Disconnect。第二次联接时(TCPClient.connect)报错“Socket error #10048 Address already in use.”,必须过一段时间才能联上。为何?我想随断随联,怎么做?
 
设置TCPServer可以重复使用一个address就可以了...
 
uses
WInsock;
IsReBind:Bool;
IsReBind:=True;
if SetSockOpt(
FSocket,
SOL_SOCKET,
SO_REUSEADDR,
@IsReBind,
SizeOf(IsReBind))
= SOCKET_ERROR then
begin
closesocket(FSocket);
Exit;
end;
end;
 
netstat -an 显示客户端IP TIME_WAIT
 
用我上面的代码就可以了,只是你必须把我的代码加到TIdTCPServer的Bind函数之前
 
已解决。
 
后退
顶部