Re: [問題] socket一問

看板C_and_CPP (C/C++)作者 (好人超)時間14年前 (2011/07/14 23:52), 編輯推噓6(6010)
留言16則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《NIKE74731 (做遊戲的心)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : VC++ : 問題(Question): : 小弟使用socket寫了一個簡單的Server-Client連線架構 : 發現bind的ip如果是192.168.1.4就會回傳true : 如果ip是用218.160.XXX.XX這種就會回傳false bind的對象是server「自己的IP」 而你ipconfig所顯示的IP是192.168.1.4←這組才是你的IP 而非218.160.XXX.XXX 因此bind會失敗,因為你不能bind不屬於你的IP 你的網路架構顯然有通過「IP分享器」之類的東西 而那個「218.160.XXX.XXX」則是分享器所使用的對外IP 外部網路 ---- IP分享器 ---- 你的電腦 218.160.X.X 192.168.1.4 : 小弟我希望可以把Server的程式放在家裡跑 : 在外面用Client連進家裡的Server作訊息傳遞 : 但目前卡在這裡 : 所以Client都連不上家裡開的Server 因為有上述所說「IP分享器」的存在 當你連線至 218.160.XXX.XXX,是連到IP分享器而非你的Server,因此會失敗 當你連線至 192.168.1.4,這是一組無法從外部連線的private IP,還是會失敗 你的問題並不在於程式,而是這個網路架構 解決辦法:如果能控制分享器,則設定port-mapping或者設定VNC連線 (方法:開啟瀏覽器輸入 http://192.168.1.1 然後輸入帳號密碼...如果你知道的話) (暗黑:可以試試看該廠牌的該型號的預設帳號密碼,網管懶得改的話就中獎了) 如果不能控制分享器就很麻煩了... 對了,如果網路跟IP分享器都是你家的(不是租房子時房東提供的) 那直接把server的網路線從分享器上拔掉,移到ISP給的數據機,再播接上網即可 不過如果你的數據機有開啟硬撥的話(20M以上好像都會開)....還是要進去設定了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.171.46 ※ 編輯: james732 來自: 140.117.171.46 (07/14 23:58)

07/14 23:58, , 1F
超哥解決了大多數人的疑問,發blog人氣應該爆多.大推:)
07/14 23:58, 1F

07/14 23:58, , 2F
我只會這種簡單的,像上面那個多項式問題我就沒輒 orz
07/14 23:58, 2F
※ 編輯: james732 來自: 140.117.171.46 (07/15 00:03)

07/15 00:31, , 3F
那如果Server bind private ip 然後Client connect218這
07/15 00:31, 3F

07/15 00:31, , 4F
個對外ip呢?
07/15 00:31, 4F
如果沒有先在分享器上面做任何設定的話 這樣Client連線的對象是IP分享器 而你的Server程式並非跑在分享器上面,而是另一部電腦 因此Client只會收到一個連線失敗的訊息 這就跟你想找公司的某個員工,卻打給總機 而總機又不認識那個員工,只好跟你說你打錯電話了 ※ 編輯: james732 來自: 140.117.171.46 (07/15 00:38)

07/15 00:41, , 5F
那在這種狀況下會有解嗎
07/15 00:41, 5F
解法就是我講的 1.設定分享器 2.改變線路配置 ※ 編輯: james732 來自: 140.117.171.46 (07/15 00:42)

07/15 00:45, , 6F
那看起來真的是無解了Orz
07/15 00:45, 6F
3. 搜尋 upnp 這個東西,「可能」可以在程式上解決你的問題 (但我不熟它,只知道eMule之類的p2p軟體有利用它來解決一些問題) 不過條件是分享器支援並且啟用,如果不支援或沒啟用,程式實作了也沒用 4. 自己辦一條網路,最花錢,但一定可以解決 ※ 編輯: james732 來自: 140.117.171.46 (07/15 00:52)

07/15 00:58, , 7F
部份電信業者應有提供將浮點ip改成固定ip之服務,
07/15 00:58, 7F

07/15 00:58, , 8F
http://briian.com/?p=4756 洽使用的電信業者試試..
07/15 00:58, 8F
不過他的問題是IP分享器所做的NAT,而非浮動IP與固定IP所造成的 ※ 編輯: james732 來自: 140.117.171.46 (07/15 00:59)

07/15 01:01, , 9F
soga,之前我改成固定什麼問題都解了 XD
07/15 01:01, 9F

07/15 09:15, , 10F
~"~這篇有鳥哥的味道.
07/15 09:15, 10F

07/15 14:10, , 11F
我還看不到鳥哥的車尾燈呢 XD
07/15 14:10, 11F

07/15 21:06, , 12F
= =但是要解決的話,的確是這樣.只是這些問題.我不會
07/15 21:06, 12F

07/15 22:05, , 13F
感謝~終於換版標了><
07/15 22:05, 13F

07/15 22:13, , 14F
不小心救到你
07/15 22:13, 14F

07/15 22:40, , 15F
看來我要以身相許了>///<
07/15 22:40, 15F

07/15 22:41, , 16F
看來你很想再創新版標
07/15 22:41, 16F
文章代碼(AID): #1E7n2tI- (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
2
25
完整討論串 (本文為第 2 之 2 篇):
2
25
文章代碼(AID): #1E7n2tI- (C_and_CPP)