关于网友提出的“ TClientSocket和TServerSocket的问题”问题疑问,本网通过在网上对“ TClientSocket和TServerSocket的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: TClientSocket和TServerSocket的问题
描述: 服务端一直运行不关闭,客户端运行后连接服务端,然后关闭程序。第一次客户端能连接上服务端,第二次客户端连接不上,第三次客户端又可以连接了
只要我重新运行服务端,连续两次打开客户端,如果两次间隔时间比较近,第二次肯定连接不上,这是什么原因啊
客户端和服务端用TWinSocketStream配合读写数据流
客户端:
FClientSocket := TClientSocket.Create(nil);
FClientSocket.ClientType := ctBlocking;
FClientSocket.Host := AServerIP;
FClientSocket.Port := STREAM_PORT;
FClientSocket.Open;
服务端:
FServerSocket := TServerSocket.Create(nil);
FServerSocket.ServerType := stThreadBlocking;
FServerSocket.Port := STREAM_PORT;
FServerSocket.OnGetThread := ServerSocketGetThread;
FServerSocket.OnThreadStart := ServerSocketThreadStart;
FServerSocket.OnThreadEnd := ServerSocketThreadEnd;
FServerSocket.OnListen := ServerSocketListen;
解决方案1: 留名一下,以后用得着
解决方案2: indy什么版本?
D7中自带的INDY存在缺陷,INDY10还挺好用。
另外据你的描述应该是代码逻辑的问题,本身你贴出来的这些代码看不出问题的,ServerSocketGetThread的地方跟踪一下,应该就发现问题的。
希望对你有帮助!
解决方案3: 我也有这个问题,困扰好久。。。
解决方案4: http://download.csdn.net/detail/unearth/6485055
http://download.csdn.net/detail/unearth/6756399
下这2个例子看下,服务器是线程型,和异步通信,线程型,适合小量的数据,异步中小型
解决方案5: 这说明代码在逻辑控制上有问题,这个仔细看代码应该能够发现问题所在.
解决方案6: delphi的tcp封装感觉不是完全彻底
服务端使用api可能更可靠些
以上介绍了“ TClientSocket和TServerSocket的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3642057.html