TServerSocket问题 ( 积分: 50 )

  • 主题发起人 主题发起人 uiit
  • 开始时间 开始时间
U

uiit

Unregistered / Unconfirmed
GUEST, unregistred user!
急!
我用TServerSocket连接近100个终端
当有终端连接断开时
如何判断它是哪个终端
我是了disconnected事件不行
 
急!
我用TServerSocket连接近100个终端
当有终端连接断开时
如何判断它是哪个终端
我是了disconnected事件不行
 
在ClientDisconnect事件中
Socket.RemoteAddress
判断客户端IP地址
 
> 楼上:
我的客户端是嵌入式终端,所以我只能在TServerSocket端判断

请大虾帮帮忙哈
分数只要我够,就给哈
 
就是ServerSocket的OnClientDisconnect事件里可以用Socket.RemoteAddress
 
〉楼上:
不好意思,刚才没看清你的话
现在
我试了,但是没有成功
我试着断开了一个终端
但没有出现我想要的提示
(我在这个事件里已经设置了提示)
 
我试了是可以的
就是在客户端用close方法断开连接,看服务器端能不能接收到事件。
 
我这边不能让客户段正常断开

通常都是异常断开的
比如掉电或者网络不好等等断开之后
想知道是哪个终端断了
 
用ping试试看呢?每隔几秒钟就ping一次,如果断了就报警。
 
to wangergulei:
你的方法不可取在我这里
谢谢
 
to ymjy:
OnClientDisconnect是不是针对正常断开情况呢?我等了一段时间
也许它在检测其他终端
还是不行
 
可以用这个方法访问客户端

var i:integer;

for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do
begin
if ServerSocket1.Socket.Connections.Connected then
begin
showmessage(ServerSocket1.Socket.Connections.RemoteAddress);
end;
end;
 
to ymjy:
这个我知道,那我就要不停的检测哪个断开那个连接
瞬间告诉我哪个断开了
OnClientDisconnect的说明
Occurs when one of the connections to a client socket is closed.
看来是正常断开
 
没有办法了吗?

斑竹们出来看看哈
 
在登录时加入在线用户列表,在断开连接时减去用户列表。
delphi7的demo中好像有一个login的例子,可以参考。
 
如果异常断开,在服务端看看ClientError事件能否触发
 
以前试过好像不行,我再试一下吧
 
to ymjy:
不行阿!
 
to ymjy:
可以是可以了
根据help 说明 以及我的实验
Occurs when there is a failure in establishing, using, or terminating the socket connection to an individual client socket.
只有在与这个终端有动作发生时,才可能触发
在终端数多的情况下
不能快速做出反应
当然只试了一次,我再看看
 
这反映也太迟钝了....
 
后退
顶部