一、Socket
1.Socket構造方法
| 構造方法 | 說明 |
|---|---|
| Socket() | 該創建的物件,沒有指定IP地址和埠號,意味著只創建了客戶端物件,并且沒有連接任何服務器,通過該構造方法創建物件后還需要呼叫connect(SocketAddress endpoint)方法,才能完成與指定服務器端的連接,其中引數endpoint用于封裝IP地址和埠號 |
| Socket(String host,int port) | 使用該構造方法在創建Socket物件時會根據引數去連接在指定地址和埠上運行的服務器程式,其中host接收的是一個字串型別的IP地址 |
| Socketa(InetAddress address,int port) | 該構造方法在使用上與第二個構造方法類似,引數address用于接受一個InetAddress型別的物件,該物件用于封裝一個IP地址, |
2.Socket常用方法
| 方法 | 說明 |
|---|---|
| int getPort() | 回傳一個int型別物件,該物件是Socket物件與服務器連接的埠號, |
| InetAddress getLocalAddress() | 獲取Socket物件系結的本地IP地址,并且IP地址封裝InetAddress型別的物件回傳 |
| void close() | 關閉Socket連接,結束本次通信,關閉Socket之前,應將與Socket相關的所有輸入流全部關閉,這是因為一個良好的程式應該在執行完畢時釋放所有的資源, |
| InputStream getInputStream() | 回傳一個InputStream型別的輸入流物件,如果該物件是由服務器端的Socket回傳的,就用于讀取客戶端發送的資料;反之,就用于讀取服務器端發送的資料, |
| OutputStream getOutputStream() | 回傳一個OutputStream型別的輸出流物件,如果該物件是由服務器端的Socket回傳的,就用于向客戶端發送資料;反之,就用于向服務器端發送資料, |
package com.bjpowernode.java_learning; import java.io.DataInputStream; import java.io.DataOutputStream; import java.net.Socket; public class D126_1_Socket { public static void main(String[] args) { Socket client_socket = null; DataInputStream in = null; DataOutputStream out = null; String ip = "127.0.0.1"; //服務器IP地址 int port = 5050; //服務器埠 try { client_socket = new Socket(ip,port); //與服務器建立連接 in = new DataInputStream(client_socket.getInputStream()); //創建輸入流 out = new DataOutputStream(client_socket.getOutputStream()); //創建輸出流 out.writeUTF("你好,我是客戶機A"); System.out.println("客戶機啟動,向服務器發送資訊:你好,我是客戶機A"); String str = in.readUTF();//等待讀取服務器回應的資訊,進入阻塞狀態 System.out.println("服務器端的回應資訊:"+str); }catch (Exception e) { System.out.println(e); }finally { try{ in.close();//關閉網路連接 out.close(); client_socket.close(); }catch(Exception e) { } } } }
運行結果:
釋義
- 該程式首先創建了系結5050埠的服務器端Socket,并進行連接監聽,如果有連接請求,則創建Socket連接,并且建立輸入流物件和輸出物件,通過輸入流物件讀取客戶端發來的內容,通過輸出流物件向客戶端發送相對內容,
二、原始碼:
- D126_1_Socket.java
- https://github.com/ruigege66/Java/blob/master/D126_1_Socket.java
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客園:https://www.cnblogs.com/ruigege0000/
- 歡迎關注微信公眾號:傅里葉變換,個人賬號,僅用于技術交流,后臺回復“禮包”獲取Java大資料學習視頻禮包

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/153774.html
標籤:Java
