2012-05-04 41 views
1

我寫了一個java類,它實現了基本的web服務器。它從控制檯獲取端口號。此代碼是非常基本的,它返回什麼客戶sends.Here是代碼:運行一個基本的web服務器

package p106; 

import java.io.*; 
import java.net.*; 

public class HttpMirror { 

public static void main(String[] args) { 

    try 
    { 
     int port = Integer.parseInt(args[0]); 

     ServerSocket ss = new ServerSocket(port); 

     for(;;) 
     { 
      Socket client = ss.accept(); 

      BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream())); 
      PrintWriter out = new PrintWriter(client.getOutputStream()); 

      out.print("HTTP/1.0 200 en"); 
      out.print("Content-Type text/plain"); 

      String line; 
      while((line = in.readLine()) != null) 
      { 
       if(line.length() == 0) 
        break; 
       out.print(line); 

      } 

      out.close(); 
      in.close(); 
      client.close(); 

     } // Tekrar döngüye gir ve bir sonraki bağlantıyı bekle. 
    }catch(Exception e) 
    { 
     System.err.println(e); 
    } 

} 

} 

我運行此代碼,什麼要我寫我的瀏覽器的地址欄? 在此先感謝。

+0

你仍然需要解析與頭部,身體等傳入的HTTP請求,並得到用戶http://localhost:Portnumber內容。 – srkavin

+0

好的。我會嘗試。 – tahasozgen

回答

4

您是否嘗試過localhost:端口號?或127.0.0.1:端口號

例如,如果端口號是8050,那麼地址是本地主機:8050127.0.0.1:8050

+0

我嘗試了兩種,但我做不到。我的操作系統是Ubuntu的11.04。 Mozilla Firefox是我的瀏覽器。端口號「4444」正在提供。 – tahasozgen

2

不指定您使用啓動Java引擎的命令。

int port = Integer.parseInt(args[0]); 

指示該端口在命令行上傳遞。因此,無論您通過哪個端口,都應該放入您的網絡瀏覽器。

例:

java HttpMirror 12345 
http://localhost:12345 
+0

我正在使用Eclipse運行java代碼,並且我在「運行 - >運行配置 - >參數 – tahasozgen

+0

中將端口號」4444「作爲參數並且?這不工作?你有沒有試過在調試模式下運行並在你的代碼中設置一個斷點來查看連接是否觸發斷點? –