作者baconcsie (Bacon)
看板java
標題[問題] 簡單ClientSocket 建立的問題,懇求板上大大解答
時間Fri Apr 8 04:13:24 2011
最近在練習簡單的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)
推 glob:why你只訂的連線port是0? 04/08 08:35
→ baconcsie:只是要先抓取本機資料,所以先設為0 讓它自動找值 04/08 09:38
推 TonyQ:你從哪看到給 0 他會自動找值啊...-_- 04/08 10:05
→ baconcsie:書上寫的,我寫Server端,設0他會自動找未使用的值 04/08 10:09
→ baconcsie:剛剛試著把值改為手動設值,但是狀況依舊 04/08 10:17
→ TonyQ:不對,你拿到未建立是因為conenct refused.你是要建 04/08 13:09
→ TonyQ:ServerSocket(被連的) 還是Socket (連別人的)? 04/08 13:10
→ baconcsie:我是要建立連別人的Socket,但還沒有要做連線,只是要取 04/08 13:35
→ baconcsie:得本機資料 04/08 13:36
→ TonyQ:你要取得什麼資料?你socket new的時候就會試著連出去了 04/08 13:53
→ baconcsie:不太懂您的意思,Socket建立起來之後,可透過Socket的 04/08 15:56
→ baconcsie:method取得本機的資料(hostname/ip address)不是嗎? 04/08 15:59
→ baconcsie:所以我只是要建立起具有Socket的物件,然後先取的本機資 04/08 16:01
→ baconcsie:料而已,還沒有要對server做連線,但現在卻連Socket都沒 04/08 16:03
→ baconcsie:有被建立,因為我的"已建立"寫在new Sokcet後,執行結果 04/08 16:04
→ baconcsie:卻沒有印出"已建立",而是進入了例外處裡印出error,所 04/08 16:07
→ baconcsie:以他是在建立Socket時發生例外,但我卻不知道為什麼會發 04/08 16:09
→ baconcsie:生例外,所以想請版上大大幫我解答 04/08 16:13
→ Chikei:Creates a stream socket and "connects" from SDK javadoc 04/08 16:19
→ aleelyle:取得ip那些的用static method就好了 不用new物件出來 04/08 20:32