有关SOCKET的SERVER端的问题??
问题一
我在程序中这样写的。
serversocket1.Active:=true;
localipaddr:=serversocket1.socket.localAddress;
可不管我是用自动分配的IP地址,还是我手动给定的IP地址,返回的localipaddr的值都是'0.0.0.0',
如果用localhostname:=serversocket1.socket.localhost则能返回正确的主机名
有哪为能告诉我为什么吗????
问题二
我写的serversocket1的Ondisconnect事件如下
procedure TfrmRemote.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
var i:integer;
begin
StatusBar.Panels[2].Text:='';
for i:=0 to serversocket1.Socket.ActiveConnections-1 do
StatusBar.Panels[2].Text :=StatusBar.Panels[2].Text+serversocket1.Socket.Connections[i].RemoteHost+'['+serversocket1.Socket.Connections[i].RemoteAddress +']' ;
end;
问题是客户端和服务器连接后。如果端开,StatusBar.Panels[2].Text 始终有值。也就是说SOCKET总有至少一个连接。不知道为什么。如果在连接端开,则能够显示和去掉后来的连接信息!