?? httpmirror.java
字號:
import java.io.*;
import java.net.*;
/**
* 這個程序是一個非常簡單的Web Server。當它接受到一個HTTP請求的時候,它發送
* 這個請求給請求者作為應答。當你想看一個Web客戶端是否正在請求時,這將是很有
* 有趣的。
*/
public class HttpMirror {
public static void main(String args[]) {
try {
// 獲取要監聽的端口
int port = Integer.parseInt(args[0]);
// 創建一個ServerSocket來監聽端口
ServerSocket ss = new ServerSocket(port);
// 現在進入一個無限循環,等待或者處理連接
for(;;) {
// 等待一個客戶來連接。這個方法將被阻塞。
// 當它返回時,這個socket將被連接到客戶端
Socket client = ss.accept();
// 獲取輸入和輸出流來同客戶端交流
BufferedReader in = new BufferedReader(
new InputStreamReader(client.getInputStream()));
PrintWriter out = new PrintWriter(client.getOutputStream());
// 開始發送我們的應答,使用HTTP1.0協議
out.print("HTTP/1.0 200 \n"); // 版本和狀態編號
out.print("Content-Type: text/plain\n"); // 數據類型
out.print("\n"); // 頭的底部
// 現在,從客戶端讀取HTTP請求,再把這個請求發送回客戶端作為
// 我們應答的一部分。客戶端并沒有取消連接,所以我們永遠不能
// 得到EOF。在標頭的最后發送了一個空行,所以當我們看到空行,
// 就停止讀取。這意味著我們不能反映POST請求的內容。注意,這個
// readline()能夠在unix, windows 和 Mac終端上正常工作。
String line;
while((line = in.readLine()) != null) {
if (line.length() == 0) break;
out.print(line + "\n");
}
// 關閉socket,中斷與客戶端的連接,關閉輸入和輸出流
out.close();
in.close();
client.close();
}
}
// 如果有錯誤發生,那么顯示錯誤信息
catch (Exception e) {
System.err.println(e);
System.err.println("Usage: java HttpMirror <port>");
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -