Java Socket編程(網(wǎng)絡(luò)編程)

一、Socket概要

??Java的網(wǎng)絡(luò)編程主要涉及到的內(nèi)容是Socket編程,那么什么是Socket呢?簡單地說,Socket,套接字,就是兩臺主機之間邏輯連接的端點(由IP地址、TCP/IP協(xié)議、端口號組成)。Socket,本質(zhì)上就是一組接口,是對TCP/IP協(xié)議的封裝和應(yīng)用(程序員層面上)。
??TCP/IP協(xié)議組可以分為四個層次:
????應(yīng)用層: HTTP協(xié)議、FTP協(xié)議
????傳輸層: TCP協(xié)議(面向有連接)、UDP協(xié)議(面向無連接)
????網(wǎng)絡(luò)層: IP協(xié)議、ICMP協(xié)議
????網(wǎng)絡(luò)接口層: 設(shè)備接口程序

二、案例

??(1)客戶端:

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


public class Client {

    public static void main(String[] args) throws Exception{
        
        // 要連接的服務(wù)端IP地址和端口
        String host = "127.0.0.1"; 
        
        int port = 55533;
        
        // 與服務(wù)端建立連接
        Socket socket = new Socket(host, port);
        
        // 建立連接后獲得輸出流
        OutputStream outputStream = socket.getOutputStream();
        
        String message="Hello Server I'm Client!";
        
        socket.getOutputStream().write(message.getBytes("UTF-8"));
        
        outputStream.close();
        
        socket.close();
       
    }
}

??(1)服務(wù)器端:

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


public class Server {
    
    public static void main(String[] args) throws Exception{
        // 監(jiān)聽指定的端口
        int port = 55533;
        
        ServerSocket server = new ServerSocket(port);
        
        // server將一直等待連接的到來
        Socket socket = server.accept();
        
        // 建立好連接后,從socket中獲取輸入流,并建立緩沖區(qū)進行讀取
        InputStream inputStream = socket.getInputStream();
        byte[] bytes = new byte[1024];
        int len;
        StringBuilder sb = new StringBuilder();
        
        while ((len = inputStream.read(bytes)) != -1) {
            
          sb.append(new String(bytes, 0, len,"UTF-8"));
          
        }
        
        System.out.println("接收到客戶端消息:" + sb);
      
        inputStream.close();
        socket.close();
        server.close();
    }
    
}

大家可以嘗試修改變成兩端進行相互通信的案例,有什么錯誤或者疑問,請留言討論

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容