我用 孫鑫的socket知識,做了一個 C/S 的聊天軟體。在實驗室的無線網里【即局域網】測驗可以正常通信。后來,用QQ把客戶端發給我一個 外地的同學,測驗 聊天軟體的性能。但是,問題出現了。我的局域網Ip地址是192.168.1.101.我同學的局域網IP也是192.168.1.101.這就導致沒法通信。后來,我把我的局域網IP設為192.168.1.102了,還是沒法通信。
后來,才知道我們的IP地址都僅限于 局域網。沒有牽涉到外網。【最主要的是不知道 外網IP往哪里填寫,貌似Socket只有一個IP項可填寫。】
我現在很疑惑,莫非 SOcket只能識別局域網IP。那樣的話,Socket網路通信的意義不就大大折扣了么。。。
如何實作,Socket跨外網,與外地同學之間進行通信
uj5u.com熱心網友回復:
首先,你要先了解私有IP與公有IP之間的區別。其次關于NAT推薦你先看篇文章。
http://hwycheng.bokee.com/2404843.html
uj5u.com熱心網友回復:
知道外網IP與埠即可, IP38上可以看到外網IP, 但是如果你是路由器上網, 那么需要作埠映射.uj5u.com熱心網友回復:
你的意思,如果電腦顯示的IP地址是外網地址,而不是192.168.*.*的局域網,那樣的話,就直接把外網IP作為目標IP地址,就可以么
uj5u.com熱心網友回復:
是的, 只要知道你電腦的外網IP就可以直接像局域網一樣通信, 但是有個前提, 你的電腦是獨立IP, 如果是在路由器后面的, 那就需要斷口映射.當然還有其它復雜些的技術,不需要作斷口映射, 比如P2P技術.
uj5u.com熱心網友回復:
這中間的知識比較多,你要走的路還長uj5u.com熱心網友回復:
socket編程就只實作了固定地址網的通訊,你家寬帶是動態地址,所以寬帶之外沒有意義至于,把外網終端作為局域網的一個站點,是另外一個話題,叫虛擬網路.
關于把世界上某一臺聯在互聯網上電腦和你家電腦用socket實作通訊
需要用到虛擬網路中的技術,叫P2P,中文名叫點對點
你的程式沒有錯,是中國人口太多了,固定IP地址不夠分
uj5u.com熱心網友回復:
是的, 只要知道你電腦的外網IP就可以直接像局域網一樣通信, 但是有個前提, 你的電腦是獨立IP, 如果是在路由器后面的, 那就需要斷口映射.
當然還有其它復雜些的技術,不需要作斷口映射, 比如P2P技術.
知道外網IP與埠即可, IP38上可以看到外網IP, 但是如果你是路由器上網, 那么需要作埠映射.
你的意思,如果電腦顯示的IP地址是外網地址,而不是192.168.*.*的局域網,那樣的話,就直接把外網IP作為目標IP地址,就可以么
非常感謝,略懂一些Socket通信的知識了
uj5u.com熱心網友回復:
這中間的知識比較多,你要走的路還長
你的意思是,還需要專門學習【計算機網路】【TCP/IP詳解】等方面的的專業知識么,不能單純的靠 孫鑫的教程,就能掌握socket通信技術么
uj5u.com熱心網友回復:
socket編程就只實作了固定地址網的通訊,你家寬帶是動態地址,所以寬帶之外沒有意義
至于,把外網終端作為局域網的一個站點,是另外一個話題,叫虛擬網路.
關于把世界上某一臺聯在互聯網上電腦和你家電腦用socket實作通訊
需要用到虛擬網路中的技術,叫P2P,中文名叫點對點
你的程式沒有錯,是中國人口太多了,固定IP地址不夠分
謝謝你的解釋,我知道了自己還是欠缺 網路知識,需要額外補充【虛擬網路技術】【 P2P技術】
uj5u.com熱心網友回復:
這中間的知識比較多,你要走的路還長
你的意思是,還需要專門學習【計算機網路】【TCP/IP詳解】等方面的的專業知識么,不能單純的靠 孫鑫的教程,就能掌握socket通信技術么
是的,孫鑫的那套視頻所講到的網路編程只是起到拋磚引玉的作用,就像里面講到資料庫編程一樣的。要真正做網路編程、資料庫編程等還需要學習相關的知識。
uj5u.com熱心網友回復:
呵呵,計算機基礎這個你沒學吧!還是開過這個課,你沒認真聽
uj5u.com熱心網友回復:
這個。。。入門的路還很長。。。樓主加油uj5u.com熱心網友回復:
學習了。該問題其實我也好想知道。。。uj5u.com熱心網友回復:
我只能說,你呀!真可愛uj5u.com熱心網友回復:
各位大神,新手學windows網路編程,看什么書比較好啊,求指教uj5u.com熱心網友回復:
推薦使用花生殼www.oray.comuj5u.com熱心網友回復:
這個絕筆大學沒好好聽課,拿一個192這樣的保留地址就想和具備合法地址的internet上的地址通信uj5u.com熱心網友回復:
計算機基礎這個你沒學吧!uj5u.com熱心網友回復:
你們倆通了VPN就直接能通信了。uj5u.com熱心網友回復:
像樓上說的那樣的話,那QQ是如何進行通信的呢?uj5u.com熱心網友回復:
QQ通信都是有中間server作為調度中心,然后通信其實斗魚server這個公網ip進行通信uj5u.com熱心網友回復:
這種方式的話,需要做內網到公網的埠映射,你的基礎知識略差,先掌握網路基礎知識再來做socket編程吧。。
如果做內網穿透的話,必須使用TCP協議(基于UDP無法穿透內網) 而且服務器端必須將埠放到公網。
內網穿透的形象解釋:我們可以上傳檔案到QQ服務器上臨時保存,我們也可以提交下載申請到qq服務器上進行檔案下載(提交申請 ,檔案傳遞 這就是穿透)。
如果我們不安裝QQ,騰訊的服務器無法將檔案直接傳遞到我們的個人主機上的(我們不提交下載申請 ,隨他多大的本事,他是不能穿透的)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/131293.html
標籤:網絡編程
上一篇:黑白棋代碼
