- Java核心技術·卷Ⅱ:高級特性(原書第10版)
- (美)凱S.霍斯特曼
- 987字
- 2020-10-30 18:10:54
4.1.1 使用telnet
telnet是一種用于網絡編程的非常強大的調試工具,你可以在命令shell中輸入telnet來啟動它。
注意:在Windows中,需要激活telnet。要激活它,需要到“控制面板”,選擇“程序”,點擊“打開/關閉Windows特性”,然后選擇“Telnet客戶端”復選框。Windows防火墻將會阻止我們在本章中使用的很多網絡端口,你可能需要管理員賬戶才能解除對它們的禁用。
你可能曾經使用過telnet來連接遠程計算機,但其實你也可以用它與因特網主機所提供的其他服務進行通信。下面是一個可以操作的例子。請輸入:

如圖4-1所示,你可以得到與下面這一行相似的信息:

上面例子說明了什么?它說明你已經連接到了大多數UNIX計算機都支持的“當日時間”服務。而你剛才所連接的那臺服務器就是由國家標準與技術研究所運維的,這家研究所負責提供銫原子鐘的計量時間。(當然,由于網絡延遲的緣故,原子鐘反饋過來的時間并不完全準確。)

圖4-1 “當日時間”服務的輸出
按照慣例,“當日時間”服務總是連接到端口13。
注意:在網絡術語中,端口并不是指物理設備,而是為了便于實現服務器與客戶端之間的通信所使用的抽象概念(見圖4-2)。

圖4-2 連接到服務器端口的客戶端
運行在遠程計算機上的服務器軟件不停地等待那些希望與端口13連接的網絡請求。當遠程計算機上的操作系統接收到一個請求與端口13連接的網絡數據包時,它便喚醒正在監聽網絡連接請求的服務器進程,并為兩者建立連接。這種連接將一直保持下去,直到被其中任何一方中止。
當你開始用time-a.nist.gov在端口13上建立telnet會話時,網絡軟件中有一段代碼非常清楚地知道應該將字符串“time-a.nist.gov”轉換為正確的IP地址129.6.15.28。隨后,telnet軟件發送一個連接請求給該地址,請求一個到端口13的連接。一旦建立連接,遠程程序便發送回一行數據,然后關閉該連接。當然,一般而言,客戶端和服務器在其中一方關閉連接之前,會進行更多的對話。
下面是另一個同類型的試驗,但它更加有趣。請執行以下操作:

然后非常仔細地鍵入以下內容:

也就是在末尾按兩次Enter鍵。
圖4-3顯示了以上操作的響應結果。它看上去應該是你非常熟悉的——你得到的是一個HTML格式的文本頁,即Cay Horstmann的主頁。

圖4-3 使用telnet訪問HTTP端口
上述操作與Web瀏覽器訪問某個網頁所經歷的過程是完全一致的,它使用HTTP向服務器請求Web頁面。當然,瀏覽器能夠更精致地顯示HTML代碼。
注意:如果一臺Web服務器用相同的IP地址為多個域提供宿主環境,那么在連接這臺Web Server時,就必須提供Host鍵/值對。如果服務器只為單個域提供宿主環境,則可以忽略該鍵/值對。
- MATLAB圖像處理超級學習手冊
- 體驗設計原理:行為、情感和細節
- 跟小海龜學Python
- Cassandra Data Modeling and Analysis
- Expert Android Programming
- Visual Basic程序設計與應用實踐教程
- Access 2016數據庫管
- Scientific Computing with Scala
- Mastering Linux Security and Hardening
- Visual Studio Code 權威指南
- C++程序設計
- Python+Office:輕松實現Python辦公自動化
- Flink入門與實戰
- 軟件測試技術
- 高性能MVVM框架的設計與實現:San