[英]TCP Server IP Client Connection Issue
好的,所以我剛開始使用c#弄亂TCP,並且我已經成功設置了一個服務器,可以向其發送“ Hello World”消息,無論如何,我一直在本地進行此操作(因為兩台筆記本電腦都已連接到同一路由器),我只是使用192.168號碼進行連接。 但是它的全部目的是通過互聯網工作,並且路由器的IP地址對於兩台計算機來說顯然是相同的,如果我輸入路由器的IP地址不起作用,並且如果我輸入的192.168號碼肯定不會的話,不能通過Internet工作...那么我要使用什么IP,或者什么是更好的解決方案?
這是重要的代碼行
var client = ScsClientFactory.CreateClient(new ScsTcpEndPoint("192.168.1.142", 10085));
其中192.168.1.142是筆記本電腦的本地IP,服務器已啟動
10085是端口。
您必須將路由器配置為將到端口10085的任何傳入連接轉發到本地IP地址。 這樣,任何人都可以使用您的外部IP地址進行連接。
每個路由器都有其自己的配置系統,因此您必須在Google中搜索“端口轉發”和路由器型號。
這取決於您想達到的目標。 例如,如果您正在創建聊天應用程序。 客戶端(在路由器后面)可以說其本地IP為192.168.1.111,路由器IP為80.120.78.100。 客戶端將連接到服務器。
建立連接后,發送回客戶端就沒有關系,因為客戶端和服務器之間的連接已經打開,因此服務器將使用相同的連接。 路由器會找出將數據包“路由”到的位置,通常您不需要了解這些內容。
但是,如果您的服務器是尋找客戶端的服務器,那就不一樣了。
我將嘗試解釋一些有關網絡的信息,但是您必須進行搜索 。
基本上 ,將一個IP掩碼 (例如192.168.1.0
理解為一個網絡。 路由器的作用是連接不同的網絡,這就是為什么路由器通常具有WAN(寬)和LAN(本地)兩個端口的原因。
有了這個概念,您就可以將Internet視為由各種ISP連接而成的一個大型網絡。 每個ISP都有一個通往其網絡的路由器,而另一個則為您提供Internet連接。 最后,您在家中有一台路由器。 因此,從中您可以了解到有3個網絡連接在一起:您的家庭,您的ISP和Internet。
為了使您能夠連接到我家里的計算機,我必須從互聯網上使這台計算機可用,我必須將其發布 。 我是通過在路由器上設置NAT (網絡區域轉換)來實現的。 此NAT表示“任何來自Internet的端口12345,都將轉發到端口80的192.168.1.10(我的服務器)”。
這是一個非常簡單的解釋,好嗎?
現在,讓我們退后一步。 如果網絡上有另一台計算機可用,則可以使用更簡單的方法測試程序是否正常運行。
192.168.1.10
和192.168.1.20
10
運行服務器並禁用所有類型的防火牆(Windows和第三方) 20
運行客戶端,然后嘗試連接到服務器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.