【发布时间】:2011-02-27 10:07:29
【问题描述】:
我的初始 UDP 套接字绑定到 127.0.0.1:9898。
当我第一次收到 epoll/kqueue 传入数据的通知时,我执行了 recvfrom() 并填写了一个名为 peer_name 的结构 sockaddr,其中包含对等信息 (ip:port)。
然后我使用 socket() 创建一个新的 UPD 套接字,
然后我将这个新创建的套接字绑定到与我原来的套接字相同的 ip:port (127.0.0.1:9898)。
然后我使用 connect() 将我新创建的套接字连接到刚刚向我发送了一些东西的对等方。我在名为peer_name 的struct sockaddr 中有信息。
然后我将新创建的套接字添加到我的 epoll/kqueue 向量中并等待通知。
我希望只从我“连接到”的对等方接收 UDP 帧。
1/ netstat -a -p udp 是否应该向我显示我新创建的套接字“已连接到”的对等方的 IP:PORT ?
2/ 我可能做错了什么,因为在创建我的新套接字后,此套接字会接收所有传入的 UDP 数据包,这些数据包以我绑定的 IP:PORT 为目标,而不管源对等 IP:PORT 是什么。
我希望看到一个我正在尝试做的工作示例 :) 或任何关于我做错了什么的提示。
谢谢!
【问题讨论】: