Delphi的ClientSocket连接问题(50分)

  • 主题发起人 主题发起人 Suvi
  • 开始时间 开始时间
S

Suvi

Unregistered / Unconfirmed
GUEST, unregistred user!
这是一个很奇怪的问题 SocketServer可以是用C/delphi写的,运行平台可以是nt/9x/linux/unix
客户端用的是Delphi的ClientSocket控件。
1.运行 SocketServer
2.运行 ClientSocket
3.连接 Socket
4.关闭 SocketServer
5.因为 Client端有一个Timer,会定时检查ClientSocket是否有连接,如果没有连接就会
强制连接:ClientSocket.Active=True;
6.因为 SocketServer根本被关闭了,所以连接失败
7.但是这个连接过程一直在继续
8.4到6个小时后,Client端报错,说 socket 在 connect 时出错,错误代码10055,查看
错误报告,WIN32API指示此错误为 socket 无法开辟可用的缓冲

9.这个问题屡试不爽,让我很困惑

请各位高手出招
 
没人理?提一提,这里有源码和程序,大家可以运行试验一下
<a href=http://202.96.154.12/xwtp/socket/test.zip>test.zip</a>
 
你在做第五个步骤地时候出错了,实际上当客户端没有链接上的时候,你用应该先
ClientSocket.Close;然后再ClientSocket.Open,这样客户端就会一直连接到服务器。
你试试看。。


 
终于找到同志了
我的被这个问题困绕很久了,
希望大家能够解决
我也提了个问题在这里。问题是一样的:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=800527
 
client端要先断开连接再重新连接server端!!!
 
delphi6,和delphi7在socket方面好像变化挺大的吧
你们有delphi7作的socket通信的简单的例子吗?
 
在client与server断开连接时,触发timer。由timer来控制重新连接。
 
好象每触发事件时必须先close,再open 然后才能不停的连接

跟ADO里的 Close;Open 一个道理吧。
 
好象每触发事件时必须先close,再open 然后才能不停的连接

跟ADO里的 Close;Open 一个道理吧。
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2575637
 
后退
顶部