将40个套接字绑定到40个不同的IP地址

Ays*_*yse 5 c windows winapi udp network-programming

我正在写UDP服务器/客户端应用程序.

我希望我的单个服务器一次处理40个客户端.为此,我想创建40个专用线程,每个线程专用于一个客户端.由于每个客户端有40个线程,我想创建40个专用套接字.

但问题是:

我不知道我将绑定的40个IP地址是什么()我的套接字.(因为就我而言,我必须将()绑定到我的服务器的IP地址.)通常我绑定()"INADDR_ANY"时只有一个套接字.

但是我应该绑定()每个40个套接字的IP地址应该是什么?请帮我.任何评论/帮助表示赞赏.

nos*_*nos 2

使用 UDP 执行此操作的一种常见方法是:

  • 将服务器bind() 到众所周知的端口。
  • 客户端将初始数据包发送到该众所周知的端口
  • 服务器在众所周知的端口上接收来自客户端的第一个数据包。
  • 服务器使用随机端口创建一个新套接字
  • 服务器从这个新套接字回复客户端。
  • 客户端收到回复,注意到它来自已知服务器端口之外的另一个端口,并使用该端口作为进一步通信的目的地。

您将使用 getpeername() 调用来了解远程地址。

请记住,UDP 是无连接的,您需要某种方式来发出结束信号或使套接字超时。