socket通訊

client端socket

public class WeatherClient{

    public static void main(String[] args) throwsUnknownHostException, IOException{

        //1.建立Socket對象,和服務端創建鏈接

        Socket socket = newSocket("127.0.0.1",12345);

        //2.發送城市名稱

        DataOutputStream dos = newDataOutputStream(socket.getOutputStream());

        dos.writeUTF("北京");

        System.out.println("請求查詢天氣: 北京");

        //3.接受返回結果使用輸入流

        DataInputStream dis = newDataInputStream(socket.getInputStream());

        String result = dis.readUTF();

        System.out.println("北京的天氣: "+ result);

        //4.關閉流

        dis.close();

        dos.close();

    }

}

服務端ide

public class WeatherServer{
 
    public static void main(String[] args) throws IOException{
 
        // 1.建立ServerSocket對象
        ServerSocket serverSocket = new ServerSocket(12345);
 
        while(true){
 
            // 2.等待客戶端鏈接,阻塞的方法
            final Socket socket = serverSocket.accept();
             
            Runnable runnable = new Runnable(){
                @Override
                public void run(){
                    try{
                        // 3.使用輸入流接受客戶端發送的請求
                        DataInputStream dis = new DataInputStream(socket.getInputStream());
                        String cityName = dis.readUTF();
                        System.out.println("接收到客戶端發送的請求: " + cityName);
                         
                        Thread.sleep(1000);
                         
                        // 4.根據城市名查詢天氣
                        String result = "今每天氣很熱";
                        System.out.println("返回天氣信息: " + result);
 
                        // 5.返回查詢結果,使用輸出流。
                        DataOutputStream dos = new DataOutputStream(socket.getOutputStream());
                        dos.writeUTF(result);
 
                        // 6.關閉流
                        dis.close();
                        dos.close();
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }
            };
             
            //啓動線程
            new Thread(runnable).start();
             
        }
    }
}
相關文章
相關標籤/搜索