Socket是两个程序进行数据交换的端点,以下用server和client简单介绍socket的用法。 MyClient.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; public class MyClient { public static void main(String[] args){ PrintWriter out = null; BufferedReader in,sin; try{//"127.0.0.1" is local IP,8000 is communication port Socket socket=new Socket("127.0.0.1",8000); //socket output stream out=new PrintWriter(socket.getOutputStream()); //socket input stream in=new BufferedReader( new InputStreamReader(socket.getInputStream())); //input stream from the keyboard sin=new BufferedReader( new InputStreamReader(System.in)); String s; do{ s=sin.readLine(); //write to the socket output stream out.println(s); out.flush(); //if the communication is not over,print the server's response if(!s.equals("bye")){ System.out.println("@Server response: "+in.readLine()); } //else the communication is over,print notification,shut down stream else{ System.out.println("The connection is closing....."); } }while(!s.equals("bye")); out.close(); in.close(); socket.close(); }catch(Exception e){ System.out.println("Error:"+e); } } } MyServer.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class MyServer { public static void main(String[] args) { // TODO Auto-generated method stub try { //establish Server socket and wait for the connection request //建立Server Socket并等待连接请求 ServerSocket server = new ServerSocket(8000); Socket socket = server.accept(); BufferedReader in = new BufferedReader(new InputStreamReader(socket .getInputStream())); PrintWriter out = new PrintWriter(socket.getOutputStream()); BufferedReader sin = new BufferedReader(new InputStreamReader( System.in)); /*先读取Client发送来的数据,然后从标准输入流读取数据并发送给Client,当从Client那里接受到bye时关闭连接*/ String s; while (!(s = in.readLine()).equals("bye")) { System.out.println("#Received from Client: " + s); out.println(sin.readLine()); out.flush(); } System.out.println("The connection is closing......"); in.close(); out.close(); socket.close(); server.close(); } catch (IOException e) { System.out.println("Error:" + e); } } }