2011-02-11 80 views
1

是否有任何简单的方法来修改TCP套接字参数? 例如: Server_program正在使用eth0 10.0.0.1,它无法重新启动,我需要在192.168.0.1的eth1上重新创建套接字。我知道还有其他一些不是trival的问题,但我现在看到的只是在内核中修改套接字的可能性。 谢谢你的任何建议。Linux内核TCP套接字修改

+0

该程序的硬编码为10.x IP?我怀疑你可以修改内存中的套接字来改变它的端口/ IP,就像是Linus一样,但也许iptables的东西可以在内部为你做一个重定向。 – 2011-02-11 14:20:05

+0

Marc B: 但程序与inode连接。对?我需要将程序“暂停”,修改套接字信息并运行程序 – 2011-02-13 19:30:01

回答

2

打开新的套接字,执行所需的任何步骤以使其连接并进入相同状态,然后使用dup2()将旧文件描述符转换为新文件的克隆。