【C#套接字重构(数据发送)】教程文章相关的互联网学习教程文章

c# – Asycn TCP Server保持套接字但停止侦听【代码】

我有以下异步TCP服务器,我用它来接受来自想要上传文件的客户端的传入请求.大约1-4小时后,服务器只是停止接受任何新连接.这让我感到困惑,因为我无法确定性地重现错误.程序中的其余线程继续正常运行.没有任何例外.关于可能发生什么的任何建议? 在服务器崩溃之前,我所看到的是它设法完成待处理的请求然后停止.我怀疑服务器是否经常出现网络断开连接.如何使这段代码对故障更加健壮?我已经将try-catch添加到可能会失败的两段代码中,但...

应用程序运行时C#TCP套接字性能下降【代码】

我写了一个C#服务器应用程序.服务器使用异步TCP套接字. 数据包是80-180字节的数据. 对于性能测试,我有一个客户端连接并连续发送数据包.通过调试前100个数据包(0-100)在大约5秒内接收.当服务器收到数据包#300-400时,接收数据包大约需要30秒.随着更多接收发生,性能继续下降. 我环顾四周,一直无法找到解决方案.我已经尝试设置Socket.NoDelay标志,以防Nagle算法禁止服务器. 我已经禁用了服务器中的所有功能;所以它只是收到以确保我没有...

C#并发和异步套接字连接【代码】

我正在研究一个简单的套接字服务器,该服务器应该接受多个连接并通过EndAccept()将它们移交给“连接”类.问题是在接受连接后,代码不接受任何进一步的操作直到连接结束. 我在Main()中创建套接字,然后通过Initialize()将套接字传递给ServerEnvironment(静态类).MainSocket.Bind(new IPEndPoint(IPAddress.Parse(Addr), Port)); MainSocket.Listen(10);ServerEnvironment.Initialize(MainSocket);while (true) {Console.ReadLine();Con...

C#套接字重构(数据发送)【代码】

想象一下,Byte [] refArchiveData的大小约为30-100 MB.我想使用NetworkStream流对象将其发送到服务器:TcpClient client = new TcpClient(server, port);Byte[] refLengthBytes = new Byte[4];Byte[] refArchiveData = null;refArchiveData = File.ReadAllBytes("C:/Temp/Python25.zip");Console.WriteLine("Archive data length is {0}", refArchiveData.Length);NetworkStream stream = client.GetStream();refLengthBytes = Sys...

C# – 使用SSL保护`套接字`【代码】

嗨,我有一个套接字连接(服务器)与可用的方法开发using System.Net.Sockets; using System.Net;是否可以在此套接字中保护数据通信?专门实施SSL?任何例子?解决方法:您可以使用SslStream.文档链接包含通过SSL进行通信的TCP服务器和客户端的示例.

如何使用C#使用Protobuf进行非阻塞套接字读取?

假设我想从网络套接字执行非阻塞读取.我可以异步等待套接字读取x字节,一切都很好. 但是如何通过protobuf将其与反序列化相结合? 从流中读取对象必须阻塞?也就是说,如果流包含的解析器数据太少,那么必须在后台进行一些阻塞,以便读者可以获取所需的所有字节. 我想我可以使用lengthprefix分隔符并读取第一个字节,然后计算出在解析之前我必须获取的最小字节数,这是正确的方法吗?例如如果我的缓冲区是500字节,则等待那500个字节,并解析...

c# – Unity中的简单套接字服务器【代码】

我想在Unity项目中使用C#插件.该插件应该充当服务器,它将从客户端获取值,以便我能够使用这些值进行进一步处理.问题是服务器有无限循环.无限循环导致Unity挂起.怎么办呢? 编辑:我附加了服务器程序的代码片段.在我看来,有两点可能导致问题.无限循环和程序暂停的点,如代码所示:void networkCode() {// Data buffer for incoming data.byte[] bytes = new Byte[1024];// Establish the local endpoint for the socket.// Dns.GetHos...

c# – 在Windows Server 2008 R2上使用异步套接字会导致100%的CPU使用率【代码】

我有一个相当通用的C#套接字服务器,它使用套接字类的异步方法 – BeginAccept(),BeginReceive()等.这个服务器在运行Win Server 2003的许多客户站点上已经运行了4年.最近我将其安装在64位Windows Server 2008 R2服务器上.在第一个客户端连接并在accept处理程序中发出BeginReceive()和BeginAccept()调用之前,一切看起来都很好.发生这种情况时,CPU使用率会达到100%并保持不变,直到我关闭侦听套接字. 不确定它是否重要,但服务器正在虚...

带有Windows窗体应用程序的C#套接字服务器【代码】

我搜索了很多,但互联网上的所有例子都是控制台应用程序.我已经尝试使用Windows窗体的控制台应用程序示例,但是当我调用socket.start形式冻结和状态更改为(不响应)时.我也尝试了多个线程,但它也不成功.如果有可能请告诉我一些事情.using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; usin...