Gem*_*i14 7 c c++ udp broadcast
我正在开发一个小型的网络游戏原型,它将使用UDP在局域网上播放.为了发现网络上的其他计算机,我一直在调查广播.但是,我仍然不确定有关UDP套接字设置/使用的一些细节(网络新手).我在游戏开始后找到了一个很好的库,但首先,必须发现所有运行游戏的计算机,并且必须选择一个作为服务器.所以我的问题如下:
bind()吗?据我所知,connect()不是必需的,也不是send()/recv(),因为它们是用于TCP(sendto()/recvfrom()作为替代品).是的,您可以从单个套接字发送广播、发送单播和接收数据包(广播或单播)。这对于“回复发件人”工作非常有用。
并不是每个套接字都需要使用bind。如果您不这样做,系统会自动为您选择一个端口。但是必须有人绑定预共享端口号才能正确传递第一个数据包(可能是广播)。第一个数据包包含源端口和IP地址;回复包就可以用这个。
然而,将两端绑定到固定端口号确实使防火墙配置更简单。
setsockopt(SO_BROADCAST),否则您在尝试发送广播数据包时会遇到错误。