我在solaris主機中有兩個接口。我想通過兩個接口啓動兩個到單個TCP服務器的TCP連接,如圖所示。 Java中是否有任何選項將接口綁定到TCP套接字以覆蓋本地路由表?在java TCP連接中綁定一個接口
我附上了網絡圖,
我想用兩個串行鏈路的帶寬從服務器獲取數據。因此我想在這兩個接口上啓動連接。
感謝,
我在solaris主機中有兩個接口。我想通過兩個接口啓動兩個到單個TCP服務器的TCP連接,如圖所示。 Java中是否有任何選項將接口綁定到TCP套接字以覆蓋本地路由表?在java TCP連接中綁定一個接口
我附上了網絡圖,
我想用兩個串行鏈路的帶寬從服務器獲取數據。因此我想在這兩個接口上啓動連接。
感謝,
您可以使用
Socket s = new Socket(hostname, port, localInterface, 0);
然而,許多操作系統不孝敬這個「提示」,將反正使用的路由表。
好的,所以,基本上它就像「註冊」關鍵字。 O可以自由地將套接字與該接口綁定或綁定到默認接口。如果它綁定到不同的接口,那麼我的應用程序將無法工作。 SocketChannel中是否有可用的抽象? – Mohan 2012-07-13 13:22:43
我在linux中讀了類似「SO_BINDTODEVICE」的內容。但是java中的socketchanneloptions類沒有「SO_BINDTODEVICE」。 – Mohan 2012-07-13 13:27:27
http://en.wikipedia.org/wiki/Host_model Linux通常是弱託管的,並且將忽略您將Socket綁定到哪個接口。 – 2012-07-13 13:47:28
你的意思是這樣的:
Socket socket1 = new Socket();
socket1.bind(new InetSocketAddress("10.1.1.1", port));
socket1.connect(new InetSocketAddress("10.1.3.1", port));
Socket socket2 = new Socket();
socket2.bind(new InetSocketAddress("10.1.2.1", port));
socket2.connect(new InetSocketAddress("10.1.3.1", port);
不幸的是,我能不能在這裏附上網絡圖。我的主要問題是我有兩個串行鏈路連接到兩個路由器。兩臺路由器分別連接到我的主機。我想通過兩個接口啓動兩個不同的連接。 – Mohan 2012-07-13 12:27:54
將它上傳到其他地方並鏈接,沒有你的圖表,這很難給出正確的答案。 – 2012-07-13 12:29:26
鏈接到圖片 - http://uploadpic.org/v.php?img=vSckl9f6Ze – Mohan 2012-07-13 12:32:05