1. 程式人生 > >一個簡單的客戶-伺服器的Socket通訊程式

一個簡單的客戶-伺服器的Socket通訊程式

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();
        }
    }
}