我已經在VB中成功完成了幾個遊戲,現在準備繼續嘗試製作多人遊戲。然而,由於我沒有這方面的經驗,並且可以在互聯網上找到很少的東西來幫助我,所以我遇到了一個問題,我找不到解決方案。我使用VB作爲語言,但我已將c#
放在標記中,因爲我可以理解使用它的解決方案。使用TCPClient類:'無法建立連接,因爲目標機器主動拒絕它'
我試圖通過使用TCP連接玩家來製作遊戲2人。
它使用TcpListener
類客戶端代碼的服務器代碼和TcpClient
類和幾乎使用這屆文檔提供了模板:server,client。
服務器:
server = New TcpListener(IPAddress.Any, 48000)
而且客戶端:
Dim client As New TcpClient()
client.Connect(hostAddr, 48000)
我測試了使用服務器和客戶端在同一臺機器上的代碼。當我使我的計算機的本地IP地址爲hostAddr
並且我可以在這兩個程序之間成功發送消息時,代碼工作得很好。
但是,當我給hostAddr
我的外部IP地址時,客戶端代碼無法工作,因爲出現錯誤:'由於目標機器主動拒絕,無法建立連接'。
我試圖不爲我工作如下:
關閉防火牆
改變我的路由器設置所有端口允許TCP連接
我在VM中使用Windows 10(我希望這不會影響事物)。
對於還有什麼可能出錯,我該如何調試以確定它們是否屬實?我可否提出一些建議?另外,如果我要求朋友在他們的計算機上運行客戶端(不在同一網絡中),我想知道是否會遇到類似的問題。
現在我正在使用同一臺機器,因此只需關閉防火牆就可以工作(對於第一部分)? – Shuri2060
另外,我爲我的虛擬機使用了VirtualBox,並認爲它與使用實際的計算機相同,因爲它可以連接到互聯網。我猜這是不正確的? – Shuri2060
謝謝!我通過VM端口轉發解決了這個問題 - 事實證明這確實是問題 – Shuri2060