gpt4 book ai didi

C/确定接收数据包的端口

转载 作者:行者123 更新时间:2023-11-30 18:00:11 25 4
gpt4 key购买 nike

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

预先感谢您的帮助。

最佳答案

使用select,您可以将所有四个套接字添加到要检查的集合中,当select返回时,该集合将包含事件套接字。

现在,您有两种方法可以确定从 select 返回的特定套接字/端口:

  1. 与您拥有的套接字进行比较。
  2. 获取本地端口(通过 getsockname)并与端口进行比较。

我推荐第一种选择。

关于C/确定接收数据包的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10719704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com