TCP通信的客戶端代碼實現(xiàn)和TCP通信的服務(wù)器端代碼實現(xiàn)
在java中,提供了兩個類用于TCP通信:
客戶端:java.net.Socket類表示,創(chuàng)建Socket對象,向服務(wù)器發(fā)送連接請求
服務(wù)器端:Java.net.ServerSocket類表示創(chuàng)建ServerSocket對象,相當(dāng)于開啟一個服務(wù),并等待客戶端的連接
TCP通信的客戶端:向服務(wù)器發(fā)送連接請求,給服務(wù)器發(fā)送數(shù)據(jù),讀取服務(wù)器回寫的數(shù)據(jù)
表示客戶端的類:
java.net.Socket:此類實現(xiàn)客戶端套接字(套接字是兩臺機器間通信的端點)
套接字:包含了ip地址和端口號的網(wǎng)絡(luò)單位
構(gòu)造方法:
Socket(String host, int port)
創(chuàng)建一個流套接字并將其連接到指定主機上的指定端口
參數(shù):
host:服務(wù)器主機的名稱/服務(wù)器的ip地址
int port:服務(wù)器的端口號
成員方法:(客戶端與服務(wù)器進(jìn)行交互使用字節(jié)流)
getOutputStream() 返回此套接字的輸出流。
getInputStream() 返回此套接字的輸入流。
void close() 關(guān)閉此套接字。
步驟:
1.創(chuàng)建一個客戶端對象Socket,構(gòu)造方法中綁定服務(wù)器的ip地址和端口號
2.使用Socket對象中的方法getOutputStream();獲取網(wǎng)絡(luò)字節(jié)輸出流OutputStream對象(輸出寫入)
3.使用網(wǎng)絡(luò)字節(jié)輸出流OutputStream對象中的方法write,給服務(wù)器發(fā)送數(shù)據(jù)
4.使用Socket中的方法getInputStream()獲取網(wǎng)絡(luò)字節(jié)輸入流InputStream對象
5.使用網(wǎng)絡(luò)字節(jié)輸入流InputStream對象中的方法read讀取服務(wù)器回寫的數(shù)據(jù)
6.釋放資源(Socket)
注意:
1.客戶端和服務(wù)器進(jìn)行交互,必須使用Socket中提供的網(wǎng)絡(luò)流,不能使用自己創(chuàng)建的對象
2.當(dāng)我們創(chuàng)建客戶端對象的時候就回去請求服務(wù)器和服務(wù)器經(jīng)過三次握手建立連接通路,如果這時服務(wù)器沒有啟動就會拋出異常如果服務(wù)器已經(jīng)啟動呢么就可以進(jìn)行交互了
代碼實現(xiàn):

?
?
?
?
?
?
?
TCP通信的服務(wù)器端代碼實現(xiàn)
TCP通信的服務(wù)器端:接收客戶端的請求,讀取客戶端發(fā)送的數(shù)據(jù),給客戶端回寫數(shù)據(jù)
表示服務(wù)器的類
java.net.ServerSocket:此類實現(xiàn)服務(wù)i的套接字
構(gòu)造方法:
構(gòu)造方法摘要
ServerSocket(int port) 創(chuàng)建綁定到特定端口的服務(wù)器套接字。
服務(wù)器必須搞明白一件事情必須知道是呢個客戶端請求的服務(wù)器
所以可以使用accept方法獲取到請求的客戶端對象Socket
成員方法:
Socket accept() 偵聽并接受到此套接字的連接。
服務(wù)器的實現(xiàn)步驟:
1.創(chuàng)建服務(wù)器ServerSocket對象和系統(tǒng)要指定的端口號
2.使用ServerSocket對象中的方法accept獲取到請求的客戶端對象Socket
3.使用Socket中的方法getInputStream()獲取網(wǎng)絡(luò)字節(jié)輸入流InputStream對象
4.使用網(wǎng)絡(luò)字節(jié)輸入流InputStream對象中的方法read讀取客戶端發(fā)送的數(shù)據(jù)
5.使用Socket對象中的方法getOutputStream();獲取網(wǎng)絡(luò)字節(jié)輸出流OutputStream對象
6.使用網(wǎng)絡(luò)字節(jié)輸出流OutputStream對象中的方法write,給客戶端發(fā)送數(shù)據(jù)
7.釋放資源(Socket ServeSocket)
代碼實現(xiàn):

?
?

來源:https://www.dianjilingqu.com/436444.html