作者littlepanada (淘氣花豬豬與可愛小熊貓)
看板java
標題Re: 請問要如何讓2~5人同時玩一個JAVA的遊戲?
時間Mon Dec 24 23:51:54 2007
※ 引述《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
1F:推 godfat:躲在 router 下別人當然連不到囉,設設你的 router 吧 12/24 23:55
2F:推 PsMonkey:樓上說得不太正確,另外,寫往路程是沒有網路概念怎麼搞 12/24 23:57
3F:→ littlepanada:請問 到底哪一個hostname才是我該用來讓別人連線的? 12/25 00:04
4F:→ littlepanada:IP: 71.198.137.34 Local IP : 192.168.1.3 12/25 00:07
5F:→ littlepanada:Host: c-71-198-137-34.hsd1.ca.comcast.net 12/25 00:08
6F:→ littlepanada:還是machine name: dogandca-41nzft 12/25 00:08
7F:→ littlepanada:1樓大若說的有幫助 是否意思是不經過router就好? 12/25 00:09
8F:推 godfat:我不知道哪裡不太正確,不太熟也是真的,你可以試試 12/25 00:19
9F:→ godfat:通常我是會在 router 開 port 導到自己電腦上 12/25 00:20
10F:→ littlepanada:我任何方法都願意試試看 請問如何開一個port呢? 12/25 00:24
11F:推 godfat:看起來你的 router 是 192.168.1.1, 連上去看看 12/25 00:33
13F:→ littlepanada:在Router MAC Address 是否用Use Computer MAC Addre 12/25 00:42
14F:推 PsMonkey:網路問題請移駕別處詢問 12/25 01:07
15F:推 Srjiang:請上google找 "ip分享器 架站 設定" 就會有參考文章了 12/25 01:09
16F:推 moonjuice:不知道說的對不對..這邊可能要找TCP/IP的書研讀嚕.. 12/25 01:11
17F:→ littlepanada:謝謝各位 有問題再請賜教 12/25 01:17
18F:推 H45:z-5-2-4 12/25 14:49
19F:→ H45:Applet 有 sign 過嗎? 12/25 14:50
20F:推 PsMonkey:他有包成 jar 檔過啦... 12/25 22:44