80端口是爲HTTP(HyperText Transport Protocol)即超文本傳輸協議開放的,此爲上網衝浪使用次數最多的協議,主要用於WWW(World Wide Web)即萬維網傳輸信息的協議。可以通過HTTP地址(即常說的“網址”)加“:80”來訪問網站,因爲瀏覽網頁服務默認的端口號都是80,因此只需輸入網址即可,不用輸入“:80”了。
查詢百度服務器IP地址:在cmd中輸入ping www.baidu.com
什麼是BufferedReader?
1. java.io.BufferedReader和java.io.BufferedWriter類各擁有8192字符的緩衝區。當BufferedReader在讀取文本文件時,會先儘量從文件中讀入字符數據並置入緩衝區,而之後若使用read()方法,會先從緩衝區中進行讀取。如果緩衝區數據不足,纔會再從文件中讀取,使用BufferedWriter時,寫入的數據並不會先輸出到目的地,而是先存儲至緩衝區中。如果緩衝區中的數據滿了,纔會一次對目的地進行寫出。
2. 從標準輸入流System.in中直接讀取使用者輸入時,使用者每輸入一個字符,System.in就讀取一個字符。爲了能一次讀取一行使用者的輸入,使用了BufferedReader來對使用者輸入的字符進行緩衝。readLine()方法會在讀取到使用者的換行字符時,再一次將整行字符串傳入。
3. System.in是一個位流,爲了轉換爲字符流,可使用InputStreamReader爲其進行字符轉換,然後再使用BufferedReader爲其增加緩衝功能。
什麼是InputStreamReader?
InputStreamReader 是字節流通向字符流的橋樑:它使用指定的 charset 讀取字節並將其解碼爲字符。它使用的字符集可以由名稱指定或顯式給定,或者可以接受平臺默認的字符集。
每次調用 InputStreamReader 中的一個 read() 方法都會導致從底層輸入流讀取一個或多個字節。要啓用從字節到字符的有效轉換,可以提前從底層流讀取更多的字節,使其超過滿足當前讀取操作所需的字節。
爲了達到最高效率,可要考慮在 BufferedReader 內包裝 InputStreamReader。例如:
BufferedReader in = newBufferedReader(new InputStreamReader(System.in));
什麼是PrintWriter?
向文本輸出流打印對象的格式化表示形式。此類實現在 PrintStream
中的所有 print 方法。它不包含用於寫入原始字節的方法,對於這些字節,程序應該使用未編碼的字節流進行寫入。
與 PrintStream
類不同,如果啓用了自動刷新,則只有在調用 println、printf 或 format 的其中一個方法時纔可能完成此操作,而不是每當正好輸出換行符時才完成。
ServerSocket的accept方法是什麼意思?
每當一個客戶進程執行以下代碼:
Socket socket = new Socket("www.javathinker.org", 80);
就意味着在遠程 www.javathinker.org 主機的 80 端口上, 監聽到了一個客戶的連接請求. 管理客戶連接請求的任務是由操作系統來完成的. 操作系統把這些連接請求存儲在一個先進先出的隊列中. 許多操作系統限定了隊列的最大長度, 一般爲 50 . 當隊列中的連接請求達到了隊列的最大容量時, 服務器進程所在的主機會拒絕新的連接請求. 只有當服務器進程通過 ServerSocket 的 accept() 方法從隊列中取出連接請求, 使隊列騰出空位時, 隊列才能繼續加入新的連接請求.