一、所謂socket一般也稱做"套接字",用於描述IP地址和端口,是一個通訊鏈的句柄。應用程序一般經過"套接字"向網絡發出請求或者應答網絡請求。 java
操做java socket時用到的最多的三個方法爲: 服務器
accept():主要用於服務器端產生「阻塞」,等待客戶端的連接請求,而且返回一個客戶端的Socket實例; 網絡
getInputStream():方法主要用來得到網絡鏈接輸入,同時返回一個InputStream對象實例; socket
getOutputStream():方法和上面的getInputStream相反。 .net
二、通常要創建Java的Socket鏈接,應首先明確服務器端和客戶端,服務器端使用ServerSocket監聽指定的端口,使用accept 等待客戶端請求,連接連接,開始會話、完成會話後,關閉連接。(注意,通常socket的關閉都應該是服務器端來進行的,後面說);客戶端使用 Socket對網絡中的某個服務器的某個端口發出連接請求,鏈接成功,開始會話,會話完成,Socket關閉。 code
二、示例代碼: server
服務器端:
對象
package com.icer.server; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * Server * * @author Icer * */ public class Server { private ServerSocket ss; private Socket s; private BufferedReader br; private PrintWriter pw; public Server() { try { ss = new ServerSocket(10000); System.out.println("Server is starting..."); s = ss.accept(); br = new BufferedReader(new InputStreamReader(s.getInputStream())); pw = new PrintWriter(s.getOutputStream(),true); String line = br.readLine(); System.out.println(line); pw.println("your word is:" + line); //pw.println("helloworld"); br.close(); pw.close(); } catch (IOException ie) { ie.printStackTrace(); } } public static void main(String[] args) throws Exception { new Server(); } }
客戶端: get
package com.icer.client; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; /** * Client * @author Icer * */ public class Client { private Socket s; private BufferedReader br; //private BufferedReader line; private PrintWriter pw; private String line = ""; public Client() { try{ s = new Socket("127.0.0.1",10000); pw = new PrintWriter(s.getOutputStream(),true); br = new BufferedReader(new InputStreamReader(s.getInputStream())); pw.println("hello"); line = br.readLine(); System.out.println(line); br.close(); pw.close(); }catch(IOException ie){ ie.printStackTrace(); } } public static void main(String[] args) throws Exception { new Client(); } }