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()將舊文件描述符轉換爲新文件的克隆。