簡體   English   中英

創建可以通過Internet連接工作的網絡應用程序

[英]Creating a networking application that can work over internet connections

從幾年前在大學學習網絡課程以來,我對網絡編程(和一般的網絡概念)有了一些基本的了解。

我記得能夠創建一個簡單的聊天應用程序,其中聊天服務器用作了解當前哪些客戶端在線的中央目錄,但是一旦一個客戶端知道要與之聊天的另一個客戶端,它們之間的實際消息就不會需要通過服務器。 我記得我們只能在一堆LAN機器上進行測試。

此C#聊天程序還具有一些注釋,指出該程序無法在Internet上運行: http : //www.geekpedia.com/tutorial239_Csharp-Chat-Part-1---Building-the-Chat-Client.html

我的問題是,當“商業”聊天應用程序可以使用時,為什么這些應用程序不能在Internet上運行? 當然,有某種方法可以使我的計算機可以訪問外部網絡,即使其IP地址在ISP網絡外部無效。

我看不到鏈接到代碼的問題。 服務器甚至沒有綁定到本地地址,這意味着它將偵聽計算機上所有IP地址上的連接。 但是,在服務器文章中有一條注釋,其中用戶更改了TcpListener對象的創建以綁定到特定地址,這意味着客戶端只能連接到該特定地址。

在原始服務器設計中,僅使用帶有端口號的TcpListenet ,除非有防火牆阻止訪問,否則不應阻止它在連接Internet的計算機上使用。

您是否知道networkComms.net ,尤其是簡短的聊天示例,在演示了此功能(少於15行代碼)? 這是專門為使用C#編寫服務器-客戶端應用程序的人員編寫的,鑒於您可能遇到的大多數問題都已經得到解決,可以為您節省一些時間。 該庫是完全即插即用的,並且在Internet上工作沒有任何問題(只要您可以在必要時設置必要的端口轉發)。

通常,如果兩個目標都位於NAT之后(因此沒有真正的外部IP地址),並且您無法配置端口轉發,則需要查看“ TCP / UDP穿孔”,這是一種非常先進的技術。

暫無
暫無

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

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