高分提问!!!!关于SOCKET问题,服务器端口正在监听,但是TELNET不到

ziqing 2009-02-17 10:25:20
开发了一个SOCKET通信的服务器端,服务器端开启后,客户端都能正常链接通信,过些时间后,有的客户端无法再连接服务器,有的客户端能正常工作,通过telnet服务器端口返回无法建立 链接,在服务器上查看端口正常监听。哪些大仙帮俺分析下原因,困扰俺好长时间了,一直找不到原因,如果能解决,另外散分。
...全文
566 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
prodiving 2009-02-27
  • 打赏
  • 举报
回复
哈哈,肯定是程序有bug,telnet都连接不了,关注下listen的第二个参数 的值 ?, 以及你的accept处理线程,以及socket异常处理,多查查吧
ziqing 2009-02-25
  • 打赏
  • 举报
回复
服务器操作系统为XP操作系统,客户端一共30 ,服务器程序开启后,Established状态数增加,只要Established状态超过60个以后,就有客户端再也连不上服务了
vagrantisme 2009-02-25
  • 打赏
  • 举报
回复
Accept线程还是很简单的,不知道你是什么地方出错了。

如果保证Accept线程是活的活,应该没有问题的。
你动态TRACE一下看看。应该会发现问题的。
eagerle01 2009-02-25
  • 打赏
  • 举报
回复
把服务器端的关键代码拿出来看看啊!
blackcat242 2009-02-25
  • 打赏
  • 举报
回复
看看链接返回的错误码是什么
百事烟 2009-02-25
  • 打赏
  • 举报
回复
如果是select模式,那么它的默认连接上限是64个

其它情况可能你没有及时关闭废弃的socket

请求连接失败也要closesocket的
OnClose里第一件事就是closesocket
king_query 2009-02-25
  • 打赏
  • 举报
回复
看一下你的出错处理,一定是你将连接关了.
scq2099yt 2009-02-18
  • 打赏
  • 举报
回复
建议检查一下Accept
csgdseed 2009-02-18
  • 打赏
  • 举报
回复
很可能是accept线程退出了,另一个原因就是资源耗尽了
就这两种可能了,调试一下
系统是否对连接数,线程数有限制?
jyh_baoding 2009-02-17
  • 打赏
  • 举报
回复
是不是你的服务器最大连接个数限制.或者服务器端的socket有问题了
baosanr 2009-02-17
  • 打赏
  • 举报
回复
开发了一个SOCKET通信的服务器端,服务器端开启后,客户端都能正常链接通信,过些时间后,有的客户端无法再连接服务器.
socket是系统核心对象,是不是你再通信的过程中用了很多socket。又没有closehandle将资源耗尽了
Wenxy1 2009-02-17
  • 打赏
  • 举报
回复
检查代码,应当是代码错误造成的。
oyljerry 2009-02-17
  • 打赏
  • 举报
回复
检查一下你的服务端Accept等返回什么...
  • 打赏
  • 举报
回复
看看是不是TTL的问题
stivenjia 2009-02-17
  • 打赏
  • 举报
回复
你自己设计的服务器,看一下通信日志是不是客户端断开了连接请求。
程序内应定时检查与客户端的连接是否正常非正常则该socket应该释放。
caitian6 2009-02-17
  • 打赏
  • 举报
回复
写下日志,看看是不是accept 那出错了
awjx 2009-02-17
  • 打赏
  • 举报
回复
"在服务器上查看端口正常监听"
你是怎么查看的?
很可能是accept线程退出了,另一个原因就是资源耗尽了。
最后就是这个问题如果有代码在手吧,是非常容易找出问题的。

ziqing 2009-02-17
  • 打赏
  • 举报
回复
各位不有高见吗

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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