java socket網路程式設計例項程式碼(含服務端和客戶端)
阿新 • • 發佈:2018-12-21
本程式碼為java socket網路程式設計例項程式碼,包括客戶端和服務端,實現客戶端傳送訊息,服務端接收並反饋訊息。 server.java為服務端程式碼。 client.java為客戶端程式碼。
服務端程式碼server.java:
package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; /** * by whg * 2018-5-23 * * socket 服務端 */ public class Server { public static void main(String[] args) { try { //建立socket連結,埠6000 ServerSocket server=new ServerSocket(6000); System.out.println("server is start,waiting for client."); //接收客戶端訊息 Socket socket=server.accept(); InputStream inputStream=socket.getInputStream(); InputStreamReader inputStreamReader=new InputStreamReader(inputStream); BufferedReader bufferedReader=new BufferedReader(inputStreamReader); String temp=null; while((temp=bufferedReader.readLine())!=null){ System.out.println("recv:"+temp); } //反饋給客戶端訊息 OutputStream outputStream=socket.getOutputStream(); PrintWriter printWriter=new PrintWriter(outputStream); printWriter.print("I have accepted."); printWriter.flush(); socket.shutdownOutput(); //關閉資源 printWriter.close(); outputStream.close(); bufferedReader.close(); inputStream.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }
客戶端程式碼Client.java:
package socket; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; /** * by whg * 2018-5-23 * * socket 客戶端 */ public class Client { public static void main(String[] args) { try { //建立socket Socket socket=new Socket("127.0.0.1",6000); //傳送訊息 OutputStream outputStream=socket.getOutputStream(); PrintWriter printWriter=new PrintWriter(outputStream); printWriter.print("hello, i am wang."); printWriter.flush(); socket.shutdownOutput(); //接收訊息 InputStream inputStream=socket.getInputStream(); InputStreamReader inputStreamReader=new InputStreamReader(inputStream); BufferedReader bufferedReader=new BufferedReader(inputStreamReader); String temp=null; while((temp=bufferedReader.readLine())!=null){ System.out.println("server reply:"+temp); } //關閉資源 bufferedReader.close(); inputStream.close(); printWriter.close(); outputStream.close(); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }