Re: 請問要如何讓2~5人同時玩一個JAVA的遊戲?

看板java作者 (淘氣花豬豬與可愛小熊貓)時間18年前 (2007/12/24 23:51), 編輯推噓9(9011)
留言20則, 6人參與, 最新討論串3/3 (看更多)
※ 引述《PsMonkey (痞子軍團團長)》之銘言: : ※ 引述《littlepanada (淘氣花豬豬與可愛小熊貓)》之銘言: : : 先跟大家說聲對不起 : : 我最近才開始學習寫java的applet : : 所以懂得的不多 還請多多指教 : : 我寫好了一個可以最多5人對戰的poker(美式梭哈)遊戲 : : 我的server/client端 寫法是從一個簡單的聊天applet程式演變過來的 : : 程式碼是 http://www.cn-java.com/download/data/book/socket_chat.pdf : : (網頁的最下面有附帶類似MSN聊天program的程式碼) : : 我在我自己家的兩台電腦(或是同一台電腦)上測試 : : 沒問題 可以執行5人同時玩 : : 但是我把我的 .jar 檔案傳給我在別國的朋友 他卻不能連上我的server : : 然後我把那個陽春的聊天程式也做成.jar檔案 要我朋友試試看能否跟我對話 : : 結果也是不行 (我都有記得要跑server端先 然後才讓client連線) : : 我又研究了一下 好像意思是 我的程式連線範圍只能在local network : 我簡單掃了一下程式碼 : 並沒有看到你所謂的「只能在 lan 連線」的限制 : (萬一我有看漏... 那詰譙我吧... 不要客氣... \囧/) : 我懷疑你的 Server 是躲在 IP 分享器(or NAT)下 : 你也許先釐清(或是呈報上來 :P)你的 host 值是多少,還有相關的網路資料 感謝您的回應 這是我用一些程式碼 (在server端的listen裡面) 所得到的數值... 程式碼: // Create the ServerSocket ss = new ServerSocket( port ); // Tell the world we're ready to go System.out.println( "Listening on "+ss ); // Keep accepting connections forever InetAddress local = InetAddress.getLocalHost(); System.out.println ("Local IP : " + local.getHostAddress()); //我的IP是71.198.137.34 InetAddress inet = InetAddress.getByName("71.198.137.34"); // Local IP : 192.168.1.3 System.out.println ("Host: " + inet.getHostName()); 得到的數值: (System.out的東西) Listening on ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=81] Local IP : 192.168.1.3 Host: c-71-198-137-34.hsd1.ca.comcast.net 我讓client端去連我的電腦名稱 port 聽說要用80才是什麼webserver 但是好像我的電腦 正好port80都沒空 所以我先隨便用個81來代替 import javax.swing.JApplet; public class applet extends JApplet { public void init() { String host = "dogandca-41nzft"; int port = 81; Client content = new Client( host, port ); setContentPane(content); } } 若我有聽懂 您言下之意是說 基本上沒有什麼lan限制的話 那麼應該可以用那聊天程式跟遠方朋友對談 只要玩家連上我的主機名稱和某個port就可以達成 不知道我有沒誤會 若是這樣 那應該不需要把code大板金吧!? "Server 是躲在 IP 分享器(or NAT)下" 這句話 我不太懂 我跟你說我家的網路情況 好了 我是住在美國 用的是comcast的DSL 家裡有用無線router 我有3台電腦A,B,C (C是手提) A和B是直接用網路線連上router 只有C是用無線的 用A當server端 AB可連線聊天 但C就連不上了 這個不知道有沒有回答到你問的10%呀? 至於 "相關的網路資料" 我很想讓你知道 但是我不知道你要的是什麼資料耶 Orz 是不是要到 開始-執行-cmd-ipconfig 找呀? 不管怎樣 我用ipconfig得到的數據是: Ethernet adapter 區域連線: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 192.168.1.3 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.1.1 不知道這樣有沒有回答精準 很不好意思 我網路概念很淺也很散 非常感謝你的回應 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 71.198.137.34

12/24 23:55, , 1F
躲在 router 下別人當然連不到囉,設設你的 router 吧
12/24 23:55, 1F

12/24 23:57, , 2F
樓上說得不太正確,另外,寫往路程是沒有網路概念怎麼搞
12/24 23:57, 2F

12/25 00:04, , 3F
請問 到底哪一個hostname才是我該用來讓別人連線的?
12/25 00:04, 3F

12/25 00:07, , 4F
IP: 71.198.137.34 Local IP : 192.168.1.3
12/25 00:07, 4F

12/25 00:08, , 5F
Host: c-71-198-137-34.hsd1.ca.comcast.net
12/25 00:08, 5F

12/25 00:08, , 6F
還是machine name: dogandca-41nzft
12/25 00:08, 6F

12/25 00:09, , 7F
1樓大若說的有幫助 是否意思是不經過router就好?
12/25 00:09, 7F

12/25 00:19, , 8F
我不知道哪裡不太正確,不太熟也是真的,你可以試試
12/25 00:19, 8F

12/25 00:20, , 9F
通常我是會在 router 開 port 導到自己電腦上
12/25 00:20, 9F

12/25 00:24, , 10F
我任何方法都願意試試看 請問如何開一個port呢?
12/25 00:24, 10F

12/25 00:33, , 11F
看起來你的 router 是 192.168.1.1, 連上去看看
12/25 00:33, 11F

12/25 00:33, , 12F
http://192.168.1.1 進去裡面找設定
12/25 00:33, 12F

12/25 00:42, , 13F
在Router MAC Address 是否用Use Computer MAC Addre
12/25 00:42, 13F

12/25 01:07, , 14F
網路問題請移駕別處詢問
12/25 01:07, 14F

12/25 01:09, , 15F
請上google找 "ip分享器 架站 設定" 就會有參考文章了
12/25 01:09, 15F

12/25 01:11, , 16F
不知道說的對不對..這邊可能要找TCP/IP的書研讀嚕..
12/25 01:11, 16F

12/25 01:17, , 17F
謝謝各位 有問題再請賜教
12/25 01:17, 17F

12/25 14:49, , 18F
z-5-2-4
12/25 14:49, 18F

12/25 14:50, , 19F
Applet 有 sign 過嗎?
12/25 14:50, 19F

12/25 22:44, , 20F
他有包成 jar 檔過啦...
12/25 22:44, 20F
文章代碼(AID): #17RzMRQa (java)
文章代碼(AID): #17RzMRQa (java)