一個簡單的客戶-伺服器的Socket通訊程式
阿新 • • 發佈:2019-02-03
import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server { public static void main(String[] args) { try{ System.out.println("等待連線"); //1.建立伺服器套接字 ServerSocket serverSocket = new ServerSocket(5500); //2.偵聽來自客戶端的連線請求 Socket connectFromClient = serverSocket.accept(); System.out.println("連線請求來自:"+connectFromClient.getInetAddress().getHostAddress()); DataInputStream inFromClient = new DataInputStream(connectFromClient.getInputStream()); DataOutputStream outToClient = new DataOutputStream(connectFromClient.getOutputStream()); String str; double radius, area; boolean goon = true; while(goon){ //從socket中讀取資料 str = inFromClient.readUTF(); if(!str.equals("bye")){ radius = Double.parseDouble(str); System.out.println("接收到的半徑值為:\t"+radius); area = radius*radius*Math.PI; str = Double.toString(area); outToClient.writeUTF(str); outToClient.flush(); System.out.println("圓的面積"+str+"已經發送"); }else{ goon = false; outToClient.writeUTF("bye"); outToClient.flush(); } } inFromClient.close(); outToClient.close(); serverSocket.close(); connectFromClient.close(); }catch(IOException e){ e.printStackTrace(); } } }