我创建了四个具有不同端口配置的套接字。使用select
函数,我从四个文件描述符中的一个读取。但是我如何才能知道收到UDP数据包的端口,我只有文件描述符,对吧?根据端口,我需要以不同方式处理接收的数据包。 recv_from
函数填充struct sockaddr
,我可以从中读出数据包的源端口,但不能读出目标端口。
提前感谢您的帮助。
答案 0 :(得分:0)
使用select
将所有四个套接字添加到要检查的集合中,当select
返回时,该集将包含活动套接字。
您现在有两种方法可以确定从select
返回的特定套接字/端口:
getsockname
)并与端口进行比较。我推荐第一种选择。