這裏僅僅需要編輯服務器的代碼,因爲瀏覽器就可以是客戶端對象
實現步驟:
1.將已存在的靜態頁面對象放在 項目下
2.創建server套接字
3.實現服務器一直開啓的狀態
4.開啓多線程技術,提高效率
//創建服務器ServerSocket對象
ServerSocket server = new ServerSocket(8080);
while (true){
//使用accept獲取Socket
Socket sc = server.accept();
new Thread(new Runnable() {
@Override
public void run() {
try {
//獲取InputStream網絡字節輸入流
InputStream is = sc.getInputStream();
if (is != null) {
//創建緩衝流 , 轉換爲字符緩衝輸入流
BufferedReader bw = new BufferedReader(new InputStreamReader(is));
//GET /IOTest/web/index.html HTTP/1.1
String line;
line = bw.readLine();
//分割路勁
String[] path = line.split(" ");
//獲取路徑 IOTest/web/index.html
String filename = path[1].substring(1); //filename = IOTest/web/index.html
System.out.println("filename:" + filename);
//創建本地字節輸入流 FileInputStream
FileInputStream fis = new FileInputStream(filename);
OutputStream os = sc.getOutputStream();
//寫入Http響應
os.write("HTTP/1.1 200 OK\r\n".getBytes());
os.write("Content-Type:text/html\r\n".getBytes());
//必須要寫入空行,否則瀏覽器不解析
os.write("\r\n".getBytes());
//一讀一寫瀏覽器
int len = 0;
byte[] bytes = new byte[1024];
while ((len = fis.read(bytes)) != -1) {
//寫入服務器
os.write(bytes, 0, len);
}
fis.close();
sc.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}