TClientSocket和TServerSocket的问题

lght 2014-06-25 03:10:46
服务端一直运行不关闭,客户端运行后连接服务端,然后关闭程序。第一次客户端能连接上服务端,第二次客户端连接不上,第三次客户端又可以连接了
只要我重新运行服务端,连续两次打开客户端,如果两次间隔时间比较近,第二次肯定连接不上,这是什么原因啊

客户端和服务端用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;
...全文
293 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2014-07-28
  • 打赏
  • 举报
回复
留名一下,以后用得着
小K-奥沙迷 2014-07-28
  • 打赏
  • 举报
回复
indy什么版本? D7中自带的INDY存在缺陷,INDY10还挺好用。 另外据你的描述应该是代码逻辑的问题,本身你贴出来的这些代码看不出问题的,ServerSocketGetThread的地方跟踪一下,应该就发现问题的。 希望对你有帮助!
suxiaolsx 2014-07-26
  • 打赏
  • 举报
回复
我也有这个问题,困扰好久。。。
haitao 2014-06-27
  • 打赏
  • 举报
回复
delphi的tcp封装感觉不是完全彻底 服务端使用api可能更可靠些
孤独de猫 2014-06-27
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/unearth/6485055 http://download.csdn.net/detail/unearth/6756399 下这2个例子看下,服务器是线程型,和异步通信,线程型,适合小量的数据,异步中小型
tcmakebest 2014-06-25
  • 打赏
  • 举报
回复
这说明代码在逻辑控制上有问题,这个仔细看代码应该能够发现问题所在.

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧