2012-05-23 21 views
0

我已经创建了四个具有不同端口配置的套接字。使用select函数从四个文件描述符中的一个中读取。但是我怎么知道我在哪个端口收到UDP数据包,我只有文件描述符,对吗?取决于我需要以不同方式处理收到的数据包的端口。 recv_from函数填充struct sockaddr,我可以从中读出数据包的源端口,但不读取目标端口。C /确定接收数据包的端口

在此先感谢您的帮助。

回答

0

With select您将所有四个套接字添加到要检查的集合中,并且当select返回时,该集合将包含活动套接字。

您现在已经搞清楚两种方式从select得到哪些具体插座/端口后面:

  1. 比较对您有插座。
  2. 获取本地端口(尽管getsockname)并与端口进行比较。

我推荐第一个选择。

相关问题