2012-01-30 121 views
0

我有網絡編程(和網絡概念一般)的有些基本的瞭解,從幾年前採取了網絡課程在大學裏工作。創建一個網絡應用程序,它可以通過互聯網連接

我記得能夠創建一個簡單的聊天應用程序,其中聊天服務器被用作中央目錄,意識到哪些客戶端當前在線,但是一旦客戶端知道其想要聊天的另一個客戶端,他們不需要通過服務器。我記得我們只能在一堆LAN機器上測試這個。

這個C#聊天程序也有一些意見提的是,該方案不通過互聯網工作:http://www.geekpedia.com/tutorial239_Csharp-Chat-Part-1---Building-the-Chat-Client.html

我的問題是,爲什麼這些應用程序無法正常工作在互聯網上,當「商業」聊天應用程序即可。當然,有一些方法可以讓我的計算機可以訪問外部網絡,即使其IP地址在ISP網絡外無效。

回答

0

我看到鏈接到的代碼沒有問題。服務器甚至不綁定到本地地址,這意味着它將監聽計算機上所有ip地址上的連接。然而,有對當用戶改變了TcpListener創建對象綁定到一個特定的地址,這意味着客戶只能連接到特定地址的服務器文章評論。

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

0

您是否知道networkComms.net,特別是展示功能here(它少於15行代碼)的簡短聊天示例?這是專門爲在c#中編寫服務器客戶端應用程序的人編寫的,因爲您可能遇到的大多數問題已經解決,並且可能會爲您節省一些時間。這個庫是完全堵塞&戲,也沒有問題的工作在互聯網上(只要你可以設置必要的端口轉發在必要時)。

一般來說,如果您的兩個目標是在NAT後面(所以沒有真正的外部IP地址),您將無法配置端口轉發,你需要看看「TCP/UDP打洞」,很先進的技術。

相關問題