【发布时间】:2011-01-17 09:24:02
【问题描述】:
如何打开原始套接字以从特定 TCP 端口发送?我希望我的所有连接始终来自短暂以下的一系列端口。
【问题讨论】:
如何打开原始套接字以从特定 TCP 端口发送?我希望我的所有连接始终来自短暂以下的一系列端口。
【问题讨论】:
如果你使用raw套接字,那么只需在数据包头中填写正确的TCP源端口即可。
相反,如果您使用的是 TCP 套接字接口(@987654322@、connect() 和朋友),那么您可以通过为客户端套接字调用 bind() 系统调用来设置源端口 - 与您所做的完全一样设置服务器套接字的监听端口。
【讨论】:
使用原始套接字建立 tcp 连接既困难又不可能;您需要在您的程序中实现整个 tcp 协议并且还阻止内核向数据包发送自己的回复(如果内核在该接口上的该地址上绑定了 IP)。 p>
这可能不是你想要的。但是,如果您确实想要它,使用您想要的任何源端口发送 tcp 帧是微不足道的,因为您可以在 tcp 标头中指定它,当然,如果您正在实现自己的 TCP 层,您将需要了解。
【讨论】: