1. 程式人生 > >?TCP發送與接收數據

?TCP發送與接收數據

java socket tcp

//客戶端

package liu.net.tcp;


import java.io.IOException;

import java.io.OutputStream;

import java.net.Socket;

import java.net.UnknownHostException;


public class Client {

/* tcp 客戶端建立的步驟

* 1.建立tcp客戶端服務

* 1.1 因為是面向連接的,必須有連接才可以進行通信

* 1.2在建立客戶端時,必須明確目的地地址和端口

* 2.一旦建立,就有了傳輸數據的通道,可以在通道中進行數據傳輸

* 這個傳輸其實就是通過流來實現的,這個流就是 socket io 流

* 3.只要獲取 socket io 中的寫動作就可以把數據寫入socket流中發給服務器端

* 4.關閉資源

*/

public static void main(String[] args) throws UnknownHostException, IOException {

System.out.println("客戶端啟動。。。");

//1.創建客戶端對象,明確目的地址和端口號

Socket s = new Socket("127.0.0.1",8899);

//2.獲取socket流中的輸出流,將數據發送給服務器

OutputStream out = s.getOutputStream();

//通過輸出流寫數據

out.write("TCP 客戶端發送給服務器的數據".getBytes());

//關閉資源

s.close();

}

}



//服務器端

package liu.net.tcp;


import java.io.IOException;

import java.io.InputStream;

import java.net.ServerSocket;

import java.net.Socket;


public class Server {

public static void main(String[] args) throws IOException {

/*創建TCP 服務器端步驟:

* 1.創建socket服務器端服務。服務器端為了讓客戶端能連上,必須提供端口。監聽一個端口

* 2.獲取客戶端對象。通過客戶端的socket流和對應的客戶端進行通信

* 3.獲取客戶端socket的讀取流

* 4.讀取數據並顯示在服務器端

* 5.關閉資源

*/

System.out.println("服務器啟動。。");

//1.創建服務端對象

ServerSocket ss = new ServerSocket(8899);

//2.獲取客戶端對象

Socket s = ss.accept();

//3.獲取客戶端的輸入流

InputStream is = s.getInputStream();

byte[] buf = new byte[1024];

int len = is.read(buf);

String data = new String(buf,0,len);

System.out.println("服務器端收到的信息:"+data);

}


}


?TCP發送與接收數據