我翻閱了許多網絡編程方面的書箱,常常能夠看到「在局域網下的文字聊天」「在局域網下的視頻聊天」這樣的字樣。可是我用了其中的代碼,發現有時用本機在公網的IP也能鏈接,但有時也鏈接不上。我想向各位高手請教幾個問題:
一、公網與局域網的網絡編程有什麼不一樣?爲何有些書要強調「局域網」幾個字?
二、爲何本機在公網的IP也能鏈接,但有時也鏈接不上?
三、我想讓處於公網的不一樣電腦都能進行通訊,代碼怎麼寫?
謝謝!!編程
這個問題,, 看TCP/IP協議就知道了,通常來講,IP地址是有ARP協議實現的~,對外網來講,經過一個路由器出去的 IP是惟一的,具體的看書把windows
公網就是一個很大很大的局域網
只要你能找到對方就能能夠互通.服務器
局域網與公網通訊,要考慮私有ip地址分配,防火牆,nat穿透等問題網絡
公網的IP都是合法的地址,經過這個IP就能找到這個公網機器
局域網機器是內網IP地址,它要能被公網機器訪問,須要服務器等作NAT等工具
主要就是NAT地址轉換的問題。。。。解決這個其實就都能用了設計
公網涉及到P2P技術,若是機子都是公網,那跟內網就同樣了,若是即有公網又有內網或者在不一樣的內網中就要用到點對點技術打洞了.你能夠參考一下<windows網絡與通訊程序設計>P2P那一章.視頻
外網IP,內網IP 均可以直接訪問外網IP
外網IP不能直接訪問內網IP
不一樣網段的內網IP不能直接互相訪問
同網段的內網IP能夠直接互相訪問遊戲
局域網的ip是靜態的,公網的ip通常是動態的,在變化,因此有時會鏈接不上ip
主要是NAT映射路由
沒什麼不一樣,協議相同編程就相同,外網很龐大,要作到窮搜索是很難的,因此若是要作聊天工具,都是你們要登錄到1個指定IP服務器上實現1服務器對多客戶的通信,若是是局域網,機器比較少,服務器端就能夠不須要了,能夠經過窮搜索方式實現點對點通信.
因爲機器數量少,因此能夠不要服務器端,任何1個客戶均可以成爲服務器端,不過TCP/IP協議作這個工做有點不太合適,IPX是最合適的無服務器模式協議,這也是不少網絡遊戲在玩局網模式時使用的是IPX協議,在玩互聯網時就用TCP/IP協議登錄到某個服務器(戰網)的緣由.
一、局域網編程和公網編程沒有什麼不一樣;
二、公網IP是全球惟一的、可見的,局域網IP對公網來說是透明的,不可見的;
三、IP段:192.168.X.X 屬於局域網使用。
關鍵在於公網IP能路由,私有IP地址不能路由,要作NAT
局域網可看作是公網的一個特例,或者說是最簡單的一個公網,但它有本身的特色,與公網又存在顯著差別。
這些都是最基本的問題。看TCP/IP協議方面的書吧。
建議看《Windows網絡編程第二版中文版》,只要把書上的東東都搞懂了,確定你對網絡編程上一臺階的。要堅持。
局域網的IP地址問題比較簡單,直接就能夠指定,可是公網就複雜了,若是機器是直接連在公網上的,有公網IP,那和局域網差很少,若是是經過NAT的,那就麻煩得多。
1。最大區別就是公網聊在要作NAT,局域網聊天只是在192。168。1。X這個不須要NAT。 2。有時用本地在公司網的IP地址可直接鏈接上,說明你的路由器是全映射性路由器,那種路由器是最簡單的全雙工路由, 好比,華爲3COM WBR204+的路由器可能就不行了,它能夠設置,半雙工,全雙工等,網絡好多P2P源碼是在上面通不過的, 3。要想在不網段間兩個用戶間能聊天就人作NAT(就是穿透防火牆), 我專門作P2P的,有什麼問題發郵件我啊,個人有資料!MSN:northwolf521@hotmail.com