看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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)
tropical72:超哥解決了大多數人的疑問,發blog人氣應該爆多.大推:) 07/14 23:58
james732:我只會這種簡單的,像上面那個多項式問題我就沒輒 orz 07/14 23:58
※ 編輯: james732 來自: 140.117.171.46 (07/15 00:03)
NIKE74731:那如果Server bind private ip 然後Client connect218這 07/15 00:31
NIKE74731:個對外ip呢? 07/15 00:31
如果沒有先在分享器上面做任何設定的話 這樣Client連線的對象是IP分享器 而你的Server程式並非跑在分享器上面,而是另一部電腦 因此Client只會收到一個連線失敗的訊息 這就跟你想找公司的某個員工,卻打給總機 而總機又不認識那個員工,只好跟你說你打錯電話了 ※ 編輯: james732 來自: 140.117.171.46 (07/15 00:38)
NIKE74731:那在這種狀況下會有解嗎 07/15 00:41
解法就是我講的 1.設定分享器 2.改變線路配置 ※ 編輯: james732 來自: 140.117.171.46 (07/15 00:42)
NIKE74731:那看起來真的是無解了Orz 07/15 00:45
3. 搜尋 upnp 這個東西,「可能」可以在程式上解決你的問題 (但我不熟它,只知道eMule之類的p2p軟體有利用它來解決一些問題) 不過條件是分享器支援並且啟用,如果不支援或沒啟用,程式實作了也沒用 4. 自己辦一條網路,最花錢,但一定可以解決 ※ 編輯: james732 來自: 140.117.171.46 (07/15 00:52)
tropical72:部份電信業者應有提供將浮點ip改成固定ip之服務, 07/15 00:58
tropical72:http://briian.com/?p=4756 洽使用的電信業者試試.. 07/15 00:58
不過他的問題是IP分享器所做的NAT,而非浮動IP與固定IP所造成的 ※ 編輯: james732 來自: 140.117.171.46 (07/15 00:59)
tropical72:soga,之前我改成固定什麼問題都解了 XD 07/15 01:01
angleevil:~"~這篇有鳥哥的味道. 07/15 09:15
james732:我還看不到鳥哥的車尾燈呢 XD 07/15 14:10
angleevil:= =但是要解決的話,的確是這樣.只是這些問題.我不會 07/15 21:06
leeyinf:感謝~終於換版標了>< 07/15 22:05
angleevil:不小心救到你 07/15 22:13
leeyinf:看來我要以身相許了>///< 07/15 22:40
angleevil:看來你很想再創新版標 07/15 22:41