套接字使用TCP提供了兩臺計算機之間的通信機制。 客戶端程序創(chuàng)建一個套接字,并嘗試連接服務(wù)器的套接字。
當(dāng)連接建立時,服務(wù)器會創(chuàng)建一個Socket對象?蛻舳撕头⻊(wù)器現(xiàn)在可以通過對Socket對象的寫入和讀取來進行進行通信。
java.net.Socket類代表一個套接字,并且java.net.ServerSocket類為服務(wù)器程序提供了一種來監(jiān)聽客戶端,并與他們建立連接的機制。
以下步驟在兩臺計算機之間使用套接字建立TCP連接時會出現(xiàn):
- 服務(wù)器實例化一個ServerSocket對象,表示通過服務(wù)器上的端口通信。
- 服務(wù)器調(diào)用 ServerSocket類 的accept()方法,該方法將一直等待,直到客戶端連接到服務(wù)器上給定的端口。
- 服務(wù)器正在等待時,一個客戶端實例化一個Socket對象,指定服務(wù)器名稱和端口號來請求連接。
- Socket類的構(gòu)造函數(shù)試圖將客戶端連接到指定的服務(wù)器和端口號。如果通信被建立,則在客戶端創(chuàng)建一個Socket對象能夠與服務(wù)器進行通信。
- 在服務(wù)器端,accept()方法返回服務(wù)器上一個新的socket引用,該socket連接到客戶端的socket。
連接建立后,通過使用I/O流在進行通信。每一個socket都有一個輸出流和一個輸入流?蛻舳说妮敵隽鬟B接到服務(wù)器端的輸入流,而客戶端的輸入流連接到服務(wù)器端的輸出流。
TCP是一個雙向的通信協(xié)議,因此數(shù)據(jù)可以通過兩個數(shù)據(jù)流在同一時間發(fā)送.以下是一些類提供的一套完整的有用的方法來實現(xiàn)sockets。
免責(zé)申明 --------------------------------------------------------------------------------------
以上內(nèi)容僅代表原創(chuàng)者觀點,其內(nèi)容未經(jīng)本站證實,中華考試網(wǎng)對以上內(nèi)容的真實性、完整性不作任何保證或承諾,轉(zhuǎn)載目的在于傳遞更多信息,由此產(chǎn)生的后果與中華考試網(wǎng)無關(guān);如以上轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請聯(lián)系我們
,我們將會及時處理。