gpt4 book ai didi

c# - 优先套接字通信

转载 作者:行者123 更新时间:2023-12-03 11:50:43 25 4
gpt4 key购买 nike

我在移动设备和 PC(服务器)之间进行客户端-服务器通信。在通信中,我有四个套接字:其中两个用于发送和接收数据,另外两个用于某种保持事件状态,因为我需要尽快检测断开连接。

只要连接正常,数据传输就没有问题。但我想建立一些优先级,以确保保持事件状态(记住:两个套接字) channel 始终发送数据,除非服务器-客户端之间的连接已断开。

我怎样才能做到这一点?

感谢您的帮助。

最佳答案

我会质疑你的四个 socket 的设置。

首先,使用单独的连接来发现远程端何时死亡不会给您带来任何优势,但实际上会在“保持事件”连接断开但“数据”连接仍然完好无损时引入竞争条件。当没有事件时,通过相同的数据连接实现周期性心跳。

然后相同节点之间的两个独立数据连接竞争带宽。网络堆栈通常不会跨连接边界进行优化,因此您会白白得到两倍的 TCP 开销。通过相同的 TCP 连接实现数据交换 - 您将获得更好的吞吐量(可能以小幅延迟增加为代价,但只有良好的测量才能说明这一点)。

最后但并非最不重要的一点是,四个连接需要四个监听 TCP 端口,因此防火墙某处可能有四个漏洞。将其减少到单个端口,防火墙管理员将永远是您的 friend 。

关于c# - 优先套接字通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13274641/

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