gpt4 book ai didi

c# - 轮询数千个 TCP 套接字

转载 作者:可可西里 更新时间:2023-11-01 02:32:01 30 4
gpt4 key购买 nike

我需要使用专有协议(protocol)通过 TCP 连接到数千个客户端,以循环获取数据。我需要用 C# 编写 .NET 服务器应用程序。

第一次尝试是为每个 tcp 套接字创建一个自己的线程,这可行但需要大量 cpu 使用。

我发现改用 .NET 线程池会更好。据我了解(http://msdn.microsoft.com/en-us/library/ms973903.aspx),我可以使用计时器让每个套接字在给定时间段(如 1 秒)内循环获取数据。这对我不起作用,因为一旦连接打开,套接字就会超时,因为在打开的套接字再次打开之前,必须打开更多的套接字。

另一个尝试是使用异步回调。这对我有用,但我不知道如何让套接字周期性地获取数据???

最佳答案

尝试使用 Socket 的 high performance API它允许同时在大量套接字上接收数据,而无需每个套接字使用一个线程。在文章的底部有一个完整示例的链接。 SocketAsyncEventArgs class 的 MSDN 文章中还有一个示例.

关于c# - 轮询数千个 TCP 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10300428/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com