2010-09-24 35 views
8

我正在使用lidgen-network庫3嘗試創建點對點連接。我是網絡編程新手,這就是爲什麼我使用這個庫。lidgren-網絡庫可以直接通過給定的IP地址點對點連接

使用DiscoverKnownPeer()函數,我可以在我的網絡中進行連接。我在網上閱讀的是,我需要做一個NAT穿越,它需要一個運行在路由器外部的服務器。我希望有一個解決方案,不需要這個額外的服務器。

如果我可以將兩個ip addesses存儲在一個web服務器上,並且創建一個web服務來通過XML將ip發送給每個相應的客戶端,我是否可以創建一個對等連接?

預先感謝您。

回答

4

不,你將無法建立通過NAT的連接,而會合服務器

NAT站在你的方式,因爲即使你知道IP地址,只讓你儘可能的路由器。路由器收到來自互聯網的請求,並且不知道將哪個內部IP發送給它,因此它將其丟棄。

NAT的突破性工作是通過使兩個對等方向對方發送傳出請求,然後路由器「知道」指定給其端口上的公共IP的數據包應該發送給給定的計算機。因此,您需要將兩臺計算機連接到不在NAT後面的外部服務器,然後使用該外部服務器協調連接兩個NAT模糊的對等體(這是Lidgren內置的對等體介紹)。

+0

我想在Delphi Xe8,多設備應用程序中進行p2p互聯網聊天。 有什麼辦法可以在Delphi XE中使用Lidgren網絡庫?如果是的話,你能否給我提供下載鏈接。 如果不是,我的Delphi XE8有沒有類似的Lidgren網絡庫? – 2017-04-03 03:33:00

0

我知道這是舊的,但...

沒有指定,使用DiscoverKnownPeer()是你的設置必要的。如果不是,那麼你可以通過在你的路由器中應用端口轉發規則來建立對等。