D
dongliang110
Unregistered / Unconfirmed
GUEST, unregistred user!
本人在做一个通讯程序,在测试的过程中出现了一些问题,也不知是不是indy的bug,
哪位知道请赐教,
1、当客户端同消息服务器正常连接,发送数据双方都可以正常接收,如果客户端
正常断开服务器连接,TIdTCPServer可以判断该连接断开,如果我将客户端机器的网线突然拔掉,
这时TIdTCPServer不能检测到此客户端已断开,显示正常连接,这个问题倒还可以用户其它方法检
测。最重要的是下面的问题
2、当客户端同消息服务器正常连接,在客户端没有退出情况下这时我将消息服务器断开,也就是
IdTCPServer.active=false;这时消息服务器会报出错误:Terminate Thread TimeOut,我查看了一
下server.Threads.LockList.Count服务器中线程数量,还是客户端的连接数量,并没有关掉,想
尽了办法也不能解决,
我估计这有可能是个bug,要不就是我在控件使用方法上有问题。在服务器端TIdTCPServer控件究
竟要和哪几个控件配合使用。还有IdServerIOHandlerSocket这个控件的功能和使用方法。
下面的是我的连接代码:
Server.DefaultPort:=strtoint(Edit1.Text);
if CBServerActive.Checked=false then
begin
ListBox1.Items.Clear;
end;
Server.Active := CBServerActive.Checked;
哪位知道请赐教,
1、当客户端同消息服务器正常连接,发送数据双方都可以正常接收,如果客户端
正常断开服务器连接,TIdTCPServer可以判断该连接断开,如果我将客户端机器的网线突然拔掉,
这时TIdTCPServer不能检测到此客户端已断开,显示正常连接,这个问题倒还可以用户其它方法检
测。最重要的是下面的问题
2、当客户端同消息服务器正常连接,在客户端没有退出情况下这时我将消息服务器断开,也就是
IdTCPServer.active=false;这时消息服务器会报出错误:Terminate Thread TimeOut,我查看了一
下server.Threads.LockList.Count服务器中线程数量,还是客户端的连接数量,并没有关掉,想
尽了办法也不能解决,
我估计这有可能是个bug,要不就是我在控件使用方法上有问题。在服务器端TIdTCPServer控件究
竟要和哪几个控件配合使用。还有IdServerIOHandlerSocket这个控件的功能和使用方法。
下面的是我的连接代码:
Server.DefaultPort:=strtoint(Edit1.Text);
if CBServerActive.Checked=false then
begin
ListBox1.Items.Clear;
end;
Server.Active := CBServerActive.Checked;