[問題] 簡單ClientSocket 建立的問題,懇求板ꐠ…

看板java作者 (Bacon)時間14年前 (2011/04/08 04:13), 編輯推噓2(2018)
留言20則, 5人參與, 最新討論串1/1
最近在練習簡單的Socket的程式,Server端已經寫好,但Client端的都照著書上打, 卻還是無法建立ClientSocket,看了好久,還是不知道原因,懇求版大大幫忙解答 簡短程式碼如下: ----------------------------------------------------------------------------- import java.io.*; import java.net.*; public class ClientSocketTest { Socket cs; int port; ClientSocketTest(String host){ port = 0; try{ System.out.println("未建立"); cs = new Socket(InetAddress.getByName(host), port); System.out.println("已建立"); } catch(IOException ex){ System.out.println("error!!"); } } public void clientInfo(){ try{ InetAddress addr = cs.getLocalAddress().getLocalHost(); System.out.println("Client Information: "); System.out.println("Local Host: "+cs.getLocalAddress().getLocalHost()); System.out.println("Host name : "+addr.getHostName()); System.out.println("IP address: "+addr.getAddress()); System.out.println("Peot : "+cs.getLocalPort()); System.out.println("============================"); } catch(IOException ex){} } } public class JavaInternetTest { public static void main(String[] args) { ClientSocketTest cst = new ClientSocketTest("localhost"); //cst.clientInfo(); } } ----------------------------------------------------------------------------- 印出結果如下 未建立 error!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.128.18.102 ※ 編輯: baconcsie 來自: 140.128.18.102 (04/08 04:20)

04/08 08:35, , 1F
why你只訂的連線port是0?
04/08 08:35, 1F

04/08 09:38, , 2F
只是要先抓取本機資料,所以先設為0 讓它自動找值
04/08 09:38, 2F

04/08 10:05, , 3F
你從哪看到給 0 他會自動找值啊...-_-
04/08 10:05, 3F

04/08 10:09, , 4F
書上寫的,我寫Server端,設0他會自動找未使用的值
04/08 10:09, 4F

04/08 10:17, , 5F
剛剛試著把值改為手動設值,但是狀況依舊
04/08 10:17, 5F

04/08 13:09, , 6F
不對,你拿到未建立是因為conenct refused.你是要建
04/08 13:09, 6F

04/08 13:10, , 7F
ServerSocket(被連的) 還是Socket (連別人的)?
04/08 13:10, 7F

04/08 13:35, , 8F
我是要建立連別人的Socket,但還沒有要做連線,只是要取
04/08 13:35, 8F

04/08 13:36, , 9F
得本機資料
04/08 13:36, 9F

04/08 13:53, , 10F
你要取得什麼資料?你socket new的時候就會試著連出去了
04/08 13:53, 10F

04/08 15:56, , 11F
不太懂您的意思,Socket建立起來之後,可透過Socket的
04/08 15:56, 11F

04/08 15:59, , 12F
method取得本機的資料(hostname/ip address)不是嗎?
04/08 15:59, 12F

04/08 16:01, , 13F
所以我只是要建立起具有Socket的物件,然後先取的本機資
04/08 16:01, 13F

04/08 16:03, , 14F
料而已,還沒有要對server做連線,但現在卻連Socket都沒
04/08 16:03, 14F

04/08 16:04, , 15F
有被建立,因為我的"已建立"寫在new Sokcet後,執行結果
04/08 16:04, 15F

04/08 16:07, , 16F
卻沒有印出"已建立",而是進入了例外處裡印出error,所
04/08 16:07, 16F

04/08 16:09, , 17F
以他是在建立Socket時發生例外,但我卻不知道為什麼會發
04/08 16:09, 17F

04/08 16:13, , 18F
生例外,所以想請版上大大幫我解答
04/08 16:13, 18F

04/08 16:19, , 19F
Creates a stream socket and "connects" from SDK javadoc
04/08 16:19, 19F

04/08 20:32, , 20F
取得ip那些的用static method就好了 不用new物件出來
04/08 20:32, 20F
文章代碼(AID): #1DdXhdtv (java)