一、TCP通信原理
TCP通信協議是一種可靠的網路協議,它在通信的兩端各建立一個Socket物件,從而在通信的兩端形成網路虛擬鏈路,
一旦建立了虛擬的網路鏈路,兩端的程式就可以通過虛擬鏈路進行通信
Java對于基于TCP協議的網路提供了良好的封裝,使用Socket物件代表兩端的通信埠,并通過Socket產生IO流進行網路通信
Java為客戶端提供了Socket類,為服務端提供了ServerSocket類
二、TCP發送資料
發送資料的步驟:
1.創建客戶端的Socket物件
Socket(String host, int port): 創建流套接字并將其連接到指定主機上的指定埠號,IP地址可以是字串型別的,
2.獲取輸出流、寫資料outputstream
getOutputStream():回傳此套接字的輸出流,
3.釋放資源
package Demo042002;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
/*TCP發送端
1.創建客戶端的Socket物件
Socket(String host, int port): 創建流套接字并將其連接到指定主機上的指定埠號,IP地址可以是字串型別的,
2.獲取輸出流、寫資料outputstream
getOutputStream():回傳此套接字的輸出流,
* */
public class TcpSend {
public static void main(String[] args) throws IOException {
//創建客戶端的Socket物件
//Socket(String host, int port): 創建流套接字并將其連接到指定主機上的指定埠號,IP地址可以是字串型別的,
Socket s=new Socket("cy",12345);
//獲取輸出流、寫資料outputstream
OutputStream ops = s.getOutputStream();
ops.write("最美不過姑娘你".getBytes());
//釋放資源
ops.close();
s.close();
}
}
這僅僅是發送資料的步驟,我們知道TCP通信需要經過“三次握手”,所以如果直接運行會報錯
三、TCP接收資料
步驟:
1.創建服務器端的Sockt物件(ServerSocket)
2.監聽客戶端連接,回傳一個Soket物件
accept() 偵聽要連接到此套接字并接受它回傳一個Soket物件,
3.獲取輸入流,讀資料;
getInputstream()
4.釋放資源
package Demo042002;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
/*服務端
1.創建服務器端的Sockt物件(ServerSocket)
2.獲取輸入流,讀資料;
getInputStream():回傳此套接字的輸入流,
3.釋放資源
* */
public class TcpRecive {
public static void main(String[] args) throws IOException {
//創建服務器端的Sockt物件(ServerSocket)
ServerSocket ss=new ServerSocket(12345);
//accept() 偵聽要連接到此套接字并接受它回傳一個Soket物件
Socket s = ss.accept();
//獲取輸入流,讀資料;
InputStream ips = s.getInputStream();
byte[] bytes=new byte[1024];
int len;
while ((len=ips.read(bytes))!=-1){
System.out.println("資料是"+new String(bytes,0,len));
?
}
//釋放資源
ips.close();
ss.close();
}
}
在建立服務端并啟動后,客戶端就可以通過三次握手進行與服務端的通信
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/459548.html
標籤:其他
上一篇:Java案例——UDP通信程式
