JAVA-建立TCP的客戶端和服務端

TCP客戶端
客戶端發數據到服務端

		Tcp傳輸: 客戶端建立的過程.
			思路:
            1.創建Tcp客戶端socket服務.使用的是socket對象.
                建議該對象一創建就明確目的地.要連接的主機.
                
            2.如果連接建立成功,說明數據傳輸通道已建立.
                該通道就是socket流,是底層建立好的. 既然是流,說明這裏既有輸入,又有輸出.
                想要輸入和輸出流對象,可以找socket來獲取.
                可以通過getOutputStream(),和getInputStream()來獲取兩個字節流.
                
            3.使用輸出流. 將數據寫出.
            
            4.關閉資源

代碼實現:

import java.net.Socket;
import java.io.OutputStream;
import java.io.IOException;

public class TCPClientDemo {
    public static void main(String[] args) throws IOException {
		
		System.out.println("TCP客戶端啓動...");
		
        //1.建立客戶端socket服務
        Socket s = new Socket("127.0.0.1", 10000);

        //2.獲取socket流中的輸出流
        OutputStream out = s.getOutputStream();

        //使用輸出流將指定的數據寫出去
        out.write("tcp演示: Hello Java".getBytes());

        //關閉資源
        s.close();
    }
}

TCP服務端
服務端接收客戶端的數據,並打印在控制檯上

 Tcp傳輸,客戶端建立的過程.
 			思路:
 			
            1.創建Tcp客戶端socket服務.使用的是socket對象.
                建議該對象一創建就明確目的地.要連接的主機.
                
            2.如果連接建立成功,說明數據傳輸通道已建立.
                該通道就是socket流,是底層建立好的. 既然是流,說明這裏既有輸入,又有輸出.
                想要輸入和輸出流對象,可以找socket來獲取.
                可以通過getOutputStream(),和getInputStream()來獲取兩個字節流.
                
            3.使用輸出流. 將數據寫出.
            
            4.關閉資源

代碼實現:

import java.net.ServerSocket;
import java.net.Socket;
import java.io.IOException;
import java.io.InputStream;

public class TCPServerDemo {
	public static void main(String[] args)  throws IOException {
	
		System.out.println("TCP服務端端啓動...");
		
		//1.創建服務端對象
		ServerSocket ss = new ServerSocket(10000);
		
		//2.獲取連接過來的客戶端對象
		Socket s = ss.accept();	//阻塞式
		
		//獲取ip地址
		String ip = s.getInetAddress().getHostAddress();
		
		//3.通過socket對象獲取輸入流,要讀取客戶端發來的數據
		InputStream in = s.getInputStream();
		
		byte[] buf = new byte[1024];
		
		//因爲知道發的數據不會很多...所有就直接可以弄了
		int len = in.read(buf);
		String text = new String(buf,0,len);
		System.out.println(ip+":"+text);
		
		//4.關閉資源
		s.close();
		ss.close();
	
	}
}

UDP不同的是TCP必須先啓動服務端…因爲TCP是必須先建立連接的.


運行結果

先執行服務端

在這裏插入圖片描述
因爲Socket s = ss.accept()是阻塞式的,需要接收到數據,纔會往下執行.


執行客戶端

在這裏插入圖片描述


這時再看服務端
在這裏插入圖片描述
收到了客戶端發送的消息了…以及知道了是那個ip發送的…


還可以讓客戶端持續發送文字…然後服務端持續接收…或者通過客戶端上傳照片,音樂等文件到服務端上


JAVA-建立UDP的接收端和發送端

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章