gpt4 book ai didi

c# - 使用 udp 时确定服务器是否正在监听

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:36 25 4
gpt4 key购买 nike

设置:我想编写一个点对点Connection 类,使用时不区分服务器和客户端。第一个调用connect()的主机将成为等待客户端连接的服务器,第二个将成为连接到服务器的客户端。

为了做到这一点,connect() 方法首先需要检查监听服务器。 a) 第一次发生这种情况时,没有找到服务器,调用 connect() 的一方开始监听 localhost 和配置的传入端口联系。 b) 调用 connect() 的第二方也会检查给定端口上的远程主机,识别服务器并连接到它。

使用 TCP 并不太难,因为 TcpClient.Connect() 在无法建立连接时抛出异常。因此我知道什么时候我是第一个。由于我只使用可靠的 LAN,所以我想使用 UDP。

我的问题:如何确定 UDP 服务器套接字是否正在等待传入数据。

理想情况下,我想之后直接使用异步网络 API。而不是自己处理监听线程。

最佳答案

使用 UDP,通信模型类似于瓶中的消息:您知道它已发送,但无法知道是否有人收到过它。

您需要手动建立通信协议(protocol)以确定远程方是否正在监听(例如让他们发送“是的,我在这里”响应)。这将要求两个端点都接受 UDP 数据报。

关于c# - 使用 udp 时确定服务器是否正在监听,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57836290/

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