簡體   English   中英

在2個網絡接口上同時綁定和連接

[英]Bind and connect simultaneously on 2 network interfaces

我正在嘗試創建一個可以通過Java中的許多網絡接口同時下載的HTTP代理,但是問題是,在Windows =>上,使用套接字的de bind()功能后,套接字始終使用一個接口連接。 因此,在收到GET請求后,我將使用指定網絡中的IP地址通過以下方法在不同的接口上創建/綁定套接字:

sock = new Socket();
sock.bind(new InetSocketAddress(Ip_Interface, 0));
sock.connect(new InetSocketAddress(host, (int) pt));

其中Ip_Interface是我的接口之一“主機”中的IP地址,“端口”表示要連接的遠程服務器。

在Ubuntu 14.04上,當我嘗試執行相同操作時,服務器不響應,並且我始終是ConnectException:連接超時。 所以我很困惑

為什么套接字的bind()函數不起作用? 我怎樣才能實現這種功能?

這不僅會通過軟件神奇地發生。

如果要將多個接口綁定在一起以增加帶寬以提高吞吐量,則只能在硬件中執行此操作,並且鏈中的所有硬件都必須支持所謂的鏈路聚合(LACP) 這意味着您唯一能獲得的好處就是在支持LAPC的計算機之間的內部網絡上,並且它們都必須通過支持LACP的交換機進行連接。

如果要通過多個接口進行傳輸,則必須自己管理多個套接字,這是一個非凡的問題,無法解決且超出堆棧溢出的范圍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM