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