用于LAN计算机发现和服务器设置的UDP广播

我正在研究一个小型的网络游戏原型,它将在使用UDP的局域网上播放。 为了发现网络上的其他计算机,我一直在调查广播。 但是,我仍然不确定关于UDP套接字设置/使用(网络新手)的一些细节。 在游戏开始后,我发现了一个好的图书馆,但起初必须发现所有运行游戏的计算机,并且必须选择一台作为服务器。 所以我的问题如下:

  • 是否可以使用单个UDP套接字来侦听和发送广播? 我很肯定这个答案是肯定的,但我想验证它。
  • 当使用UDP时,你是否真的必须使用bind() ? 据我了解, connect()不是必需的,也不是send()/recv() ,因为它们是用于TCP( sendto()/recvfrom()的替代品)。

  • 是的,您可以发送广播,发送单播和从单个套接字接收数据包(广播或单播)。 这对于“回复发件人”的工作非常有用。

  • 不是每个套接字都需要使用绑定。 如果你不这样做,将自动为你选择一个端口。 但是有人必须绑定一个预共享端口号才能正确传送第一个数据包(可能是广播)。 第一个数据包包含源端口和IP地址; 回复数据包可以使用这个。

  • 但是,将两端绑定到固定端口号会使防火墙配置更简单。

  • setsockopt(SO_BROADCAST) ,否则你会遇到尝试发送广播数据包的错误。

  • 链接地址: http://www.djcxy.com/p/53101.html

    上一篇: UDP broadcasting for LAN computer discovery & server setup

    下一篇: iOS: Is there a way to delete specific files securely from the file system?