-
首先對於socket,http這種客戶端和服務器通訊的理解
http協議本身自己的底層是通過建立socket實現的。
socket本身是位於傳輸層的,那麼對於http這種應用層協議的通訊原理是怎樣的呢?
1)http協議底層實現socket建立連接之後,對socket之間通訊的內容定義爲http的格式,這樣雙方就
可以約定一些參數信息,實現雙方通訊。
2)自定義協議:
通過對http協議的實現方式,我們可以自己定義一套協議,其中包含我們自己的參數信息,放在要傳送的內容的頭部
並進行解析,就實現了我們自己的需求。
例如筆者在進行辦公簽到的程序中可以自己定義一套協議:
Sign:sucess
Sign_url:http:www.xxxx.com/xxxxxxxx
-
-
下面附上http服務器源碼
-
ServerSocket serverSocket;
-
while (true) {
-
Socket socket = null;
-
try {
-
socket = serverSocket.accept();
-
-
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
-
StringBuilder stringBuilder = new StringBuilder();
-
String line = null;
-
while ((line = bufferedReader.readLine()) != null
-
&& !line.equals("")) {
-
stringBuilder.append(line).append("/n");
-
}
-
bufferedReader.close();
-
socket.close();
-
}