求救,C#socket监听多个TCP连接时,怎么会经常中断?

问题描述

最近碰到一个难题,我在PC上用C#编写的服务器(OS是windowsXP),arm平台的linux去嵌入式系统作客户端,客户端一直发数据包到服务器,当客户端数量较少时socket连接不容易断,但有时也会断,当客户端数量多时(如1,20几台),它们之间的连接经常中断,服务器端会出现"远程强制关闭一个现有连接"的异常,客户端会出现通讯链路不可用的错误.奇怪的是用一台LinuxPC作服务器又没有类似的事情发生,不解,而且我在windows上用win32编的程序也会发生中断.请问各位大侠?这是什么原因?我试了好像也不是windows对socket连接数的限制问题,我通过一个补丁修改了连接数,也有类似问题.

解决方案

解决方案二:
可能多半是它获取数据时不稳定了,少它好识别也相对稳定些,多了就不稳定了,你看看有没有别的办法解决了,我没试过
解决方案三:
是否设置了最大连接数,或者发送数据是否频繁,自己看看.
解决方案四:
防火墙看了没有
解决方案五:
客户端一直在发数据,不过20多台机器1秒钟的数据差不多才1M左右,缓存应该没问题的把。我把防火墙关了啊,我用EvID4226Patch.exe工具修改了连接数为512,另外我用2个交换机(16口的)时断的很频繁.
解决方案六:
我觉得断的很频繁可能是机器越多概率越大的原因,因为机器数量少时也是过一会就断。

时间: 2024-10-26 20:09:49

求救,C#socket监听多个TCP连接时,怎么会经常中断?的相关文章

tcp连接-TCP连接时,服务端监听socket接收客户端连接后新创建的socket默认绑定的端口是监听端口吗?

问题描述 TCP连接时,服务端监听socket接收客户端连接后新创建的socket默认绑定的端口是监听端口吗? 比如用来监听连接的socket绑定23端口,服务端每接受一个连接都新开一个线程和客户端通信,并把新socket传递给新线程,是不是所有新创建的socket都是经过23端口和客户端通信? 解决方案 是的,都通过端口23进行通信 解决方案二: 都是监听端口,如果不是客户端就不能将数据发送到服务器 解决方案三: 23只是监听建立连接,后续数据交换走实际上端口

我写的socket监听过一段时间就需要重新启动一下程序是什么原因

问题描述 我写的socket监听过一段时间就需要重新启动一下程序是什么原因 private void StartReceive() { string msg = null; IPEndPoint iep = new IPEndPoint(IPAddress.Parse(PublicVariables.BJIP), PublicVariables.PORT); socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, Pr

如何实现监听多个TCP/IP端口并接收各个端口的数据

问题描述 如何实现监听多个TCP/IP端口并接收各个端口的数据 解决方案 解决方案二:应该使用多线程巴!!解决方案三:能给我提供一些代码吗解决方案四:学习,关注解决方案五:publicvoidListen(intport){...//TheCodetoListening}publicvoidFun(){Threadthd_1=newThread(Listen(8080));Threadthd_2=newThread(Listen(8081));Threadthd_3=newThread(List

怎么关掉socket监听

问题描述 环境linuxwas我的web应用部署在was下,有一个socket监听程序,启动时单独起了一个线程去启动socket监听,但是怎么才能在关闭web应用时将socket一起关掉呢?socket的进程是由was管理的,总不能每次重启应用都要把was重启了吧

java se-java怎样监听蓝牙或者wifi连接?

问题描述 java怎样监听蓝牙或者wifi连接? 当一个嵌入式设备有连接过来的时候,. 使用java怎样监听蓝牙或者wifi连接? 求思路 解决方案 不美溜进来里咯考虑考虑李俊咯 解决方案二: http://www.cnblogs.com/javawebsoa/archive/2013/05/06/3063630.html 一般来说不同的设备都有不同的接口的,上面是android设备上wifi

有什么好的方法让服务器socket监听数据更新呢

问题描述 服务端:packageSocketTest;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.ServerSocket;importjava.net.Socket;publicclassServer{publicstaticvoidmain(String[]args){ServerS

求助啊~~C#怎样实时监听外网的连接状况,在外网掉线的时候提示?

问题描述 求各位高手,老师指教,给我个思路也好?我在网站查看过很多,但是都是网线拔掉才会提示网络无法连接,我是想在外网掉线的时候发出提示,请各位给个思路,谢谢. 解决方案 解决方案二:不停地给百度发包就行,ping不通百度就是掉了.解决方案三:InternetGetConnectedState用这个函数可以判断网络通不通你试试解决方案四:引用2楼wmingcsharp的回复: InternetGetConnectedState用这个函数可以判断网络通不通你试试 +1解决方案五:引用2楼wming

PHP监听Socket

<?phpset_time_limit(10);$commonProtocol = getprotobyname("tcp");$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);if ($socket) {$result = socket_bind($socket, 'localhost', 1337);if ($result) { $result = socket_listen($socket, 5);

多线程问题!!同时监听socket和串口

问题描述 多线程问题!!同时监听socket和串口 我要写一个软件,其中需要同时监听socket和串口.socket监听的内容为采集的数据信息,串口监听得到的消息用来控制socket停止接收数据.现在使用了Windows的定时器settimer间隔一定时间接收一次socket的数据:开辟了一个新的线程用于等待串口的消息,使用waitforsingleobject无限期地等待串口发来命令.但是现在的问题就是如果一直监听串口就无法接受socket发来的数据:如果不实时监听串口而是间隔一段时间再监听,