社区
C#
帖子详情
Socket服务端运行一段时间后出现无法连接上的问题
JMhappy
2020-07-16 05:48:51
环境为Socket服务端和对应客户端以及一个安卓客户端
现在服务端运行一段时间后出现客户端连接不上服务端情况,有时彻底连不上,有时过5/6分钟左右新的客户端能连上,重启服务端恢复正常。
客户端数量大概在1-100之间
现在怀疑是资源不够用,但客户端断开的时候也shutdown和close了,而且这连接数已经很少了应该不至于才对,想不到问题点在哪儿了
...全文
14436
10
打赏
收藏
Socket服务端运行一段时间后出现无法连接上的问题
环境为Socket服务端和对应客户端以及一个安卓客户端 现在服务端运行一段时间后出现客户端连接不上服务端情况,有时彻底连不上,有时过5/6分钟左右新的客户端能连上,重启服务端恢复正常。 客户端数量大概在1-100之间 现在怀疑是资源不够用,但客户端断开的时候也shutdown和close了,而且这连接数已经很少了应该不至于才对,想不到问题点在哪儿了
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
我和我的代码互怼
2020-09-03
打赏
举报
回复
这个简单,把代码精简到最精简,然后再做连接测试,如果没有问题再慢慢丰满代码。
有时候这个办法在搞不清楚问题的时候,特别有效
ziqi0716
2020-09-02
打赏
举报
回复
建议不要直接用裸tcp协议进行通讯,你hold不住的. Http协议 Modbus协议 Mqtt协议 ..... 等等现有的协议均已经处理好了各种异常的处理,站在巨人肩上吧,那些连接管理,心跳,断包,粘包,数据可达性等问题,你都可以不用管了,只用你的关键业务逻辑. 你折腾一辈子,可能也就是重复造了几个轮子,而且不一定比现有的圆.
datafansbj
2020-09-02
打赏
举报
回复
服务端代码是怎么写的?如果只是按照 MSDN 上的例子使用阻塞模式来写,那么并发能力是很差的。使用 IOCP 模式会好很多。
jwh2004
2020-07-21
打赏
举报
回复
至少在当前有问题阶段,你应该在客户端和服务器端分别写日志文件或往数据库写记录信息,哪个ip或什么用户什么时间登陆和退出了,看看服务器没收到socket关闭有什么规律没。比较保险的方式是你客户端关闭连接前给服务端发个专门的关闭命令消息然后再关闭,服务端收到关闭命令消息如果10秒内没收到socket关闭,就主动进行关闭。 服务端关闭socket后,也要把相应的资源释放掉
以专业开发人员为伍
2020-07-17
打赏
举报
回复
服务端别说接入1个或者100个客户端,就算是同时接入上万个客户端请求也没啥。而当客户端断掉的时候,服务器端是会收到客户端中断的通知,或者至少你可以每隔几分钟给客户端发一个心跳来判断。这都是比较标准的架构点。我从来没有遇到说“客户端然后就连不上服务器了”的机制,遇到这个可以百分之一千地知道,是代码写飘了。
smwhotjay
2020-07-17
打赏
举报
回复
句柄泄漏了。 偷懒就搞个守护重启。 不偷懒就仔细回收资源。
孤独de猫
2020-07-16
打赏
举报
回复
服务器针对一些无效的连接 ,也要及时的释放资源的,如将对象dispose 或 null。也可以使用心跳包 来判断该链接是否有效。超过多长时间,没有通讯 就自动关闭连接。
以专业开发人员为伍
2020-07-16
打赏
举报
回复
那还是“本地测试”没下功夫。
JMhappy
2020-07-16
打赏
举报
回复
现在问题不好复现,自己本地测试模拟服务端和客户端(不包括安卓客户端)测试都能正常,连接量上去也能正常
以专业开发人员为伍
2020-07-16
打赏
举报
回复
好好检查程序 bug
SOCKET
客户端与
服务端
长时间通信后,会
连接
不上
服务端
的
问题
,以及server端UDP丢包的
问题
人生第一篇博客,希望能以一个好的开始,chizhi
Socket
服务端
断网时,客户端依旧显示
连接
状态?
服务端
运行
突然断网时,客户端接收不到断网的回调(分很多场景,参考: https://www.cnblogs.com/549294286/p/5077175.html) 为什么在
服务端
断网时接不到回调呢? 这是因为TCP建立的通道被破坏,造成了...
socket
客户端与
服务端
正常通信,
服务端
过了
一段时间
就接收不到客户端的数据了
开一个线程启动
socket
服务端
,线程中死循环,捕获异常后使用递归方式接着执行,
一段时间
后,方法未报错,也没有继续打印日志,说明线程阻塞,但是网络是良好的,原因未知,重启又正常,
一段时间
又接收不到数据。...
解决
socket
服务端
和客户端程序之间传输
问题
2.
服务端
开启后,客户端开启后会直接退出,不会等待接受数据。两种现象 1.
服务端
开启后,客户端也开了之后,两个都在相互等待。现象2的报错是,客户端报错connection refused。很简单的程序,服务器发一句话,客户端...
Java网络编程上之
Socket
服务端
编程
简单来说,网络上的两个程序通过一个双向的通讯
连接
实现数据的交换,这个双向的链路的一段成为一个
socket
。
socket
通常用来实现客户端和
服务端
的
连接
,一个
socket
由一个ip地址和一个端口号唯一确定。 使用
socket
进行...
C#
111,093
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章