我用DELPHI6 ,做一个TCP/IP主客户端程序(用TSERVERSOCKET/Tclentsocket),如何放弃了一个已建立的连接?
解决方案 »
- 如何取消dbgrid1.SelectAll
- delphi7维护SQL
- 100分 解决一个问题.
- (兄弟们帮助我改一下这个线程) 当我发信息(执收send后)在线程中等待数据的到来,如果数据到了,退出线程,否则30秒后就算超时,也退
- 子窗口ShowModal后如何在主窗口中修改子窗口中的进度条控件的位置
- 这个时间的类型有问题,怎么改啊??????????????
- 如何用Delphi编写后台监控软件!!!100分
- @@@@如何完成UNICODE码到区位码的转换(给出提示20分,给出函数50分,给出源程序200分)
- 今天CSDN怎么搞的,不能结账,总是说我不能给自己加分,可我根本没有给自己加分?
- 怎样在TreeView控间中定位?我先选择一个Item,然后对TreeView排序后,怎样又回到刚选择的Item上来。也就是说让该Item选中,并能显示出来。
- 关于DLL问题(调用DLL中函数出错)
- 急!!1!1
如果有很多客户端连接到服务器端,那么在服务端程序中我要如何主动关闭某一个socket套接字呢?
当客户端不可知中断后,下次再进来时,我只能根据它的GPRS ID 号来判断是否删除原来的记录,然后再把现在的记录写进去。可是如果只有一个GPRS ID 的时候,是没有问题的,一旦,多个ID 都进来时,删除掉不可知的SOCKET后,指令就发送不成功了。
当客户端不可知中断后,下次再进来时,我只能根据它的GPRS ID 号来判断是否删除原来的记录,然后再把现在的记录写进去。可是如果只有一个GPRS ID 的时候,是没有问题的,一旦,多个ID 都进来时,删除掉listview1中现在不存在的GPRS ID 及相关的IP、SOCKET等,不可知的SOCKET后,指令就发送不成功了。
这是为什么?
211.138.143.245
2004-3-17 10:13:44
错误事件是:An error occurred when trying to close a connection.
-----------------------------------------------------------
TCP/IP 连接发生错误!错误号为:10053
44267
211.138.143.249
2004-3-17 10:13:38
错误事件是:An error occurred when trying to close a connection.
-----------------------------------------------------------
TCP/IP 连接发生错误!错误号为:10053
回复 ID=0000 的脉波帧命令!
-----------------------------------------------------------
1
捕捉到来自 ID=0000 的脉波帧命令!5C 53 04 00 00 A2 24 79
-----------------------------------------------------------
客户端登录 来自:211.138.143.249 句柄为:796 端口号:44267
数目0
-----------------------------------------------------------
不可知中断原因的客户端已删除!
-----------------------------------------------------------
41969
211.138.143.195
2004-3-17 10:10:38
错误事件是:An error occurred when trying to close a connection.
-----------------------------------------------------------
TCP/IP 连接发生错误!错误号为:10053
回复 ID=0000 的脉波帧命令!
-----------------------------------------------------------
1
捕捉到来自 ID=0000 的脉波帧命令!5C 53 04 00 00 A2 24 79
-----------------------------------------------------------
来自IP:211.138.143.195 发回的数据包
长度:26
内容:5C 53 16 00 00 A1 FE 68 50 68 32 02 00 00 68 81 06 43 C3 83 93 34 33 C6 16 06
-----------------------------------------------------------
我想问的是:serversocket.socket.connection[i] 是由serversocket 自己来维护的吗?
也就是说,I 的值是从0 到 正常连接的数目减1,对不对?还有,在server端我要如何主动
释放一个socket连接,是不是 serversocket.socket.connections[i].close ; ?如果是的
话,那我要如何把它和listview1.items.item 对应起来呢?
还有,我在和其它GPRS 子站通信时,要如何换另一个SOCKET,是不是用:
ServerSocket1.Socket.Connect(i);也就是先和另一个线程连接上后再进行通信?
ServerSocket1.Socket.Connect(i).sendbuf();