1
我正在寫一個程序,需要兩個客戶端(點對點)彼此連接,而無需使用任何服務器,甚至只是在匹配過程中。兩個客戶都已經知道彼此的公共和私人IP。一個或兩個客戶端可能在NAT後面。我不能依賴IPv6。C#UDP穿透沒有rendevous服務器
我遇到的問題是,一個客戶端(我們稱之爲A)必須將數據包發送給另一個(B),在A的NAT中打出一個洞並通過B的已經被打孔的NAT。但是,這要求A知道B已經穿透到B的NAT的外部端口,因爲B的NAT本地端口不能被使用。另外,B不能從它的NAT後面識別這個端口。 有沒有什麼辦法來辨別這個端口,或者甚至讓B告訴NAT使用哪個端口?
在此先感謝。
P.S.我正在使用.NET Unity使用版本,大約2.0。
P.P.S.如果你有一個可以與TCP協同工作的解決方案,我也會接受!
P.P.P.S.或者幾乎任何協議,而不是Http!