java eclipse 简单的局域网聊天 webservice



1.创建一个java project 项目,创建Client和Server 两个类

2.Client 类的内容

package web_service;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class WeatherClient {
 public static void main(String[] args) throws UnknownHostException, IOException{
  Scanner in = new Scanner(System.in);
       

        //1.创建Socket对象,和服务端建立连接

        Socket socket = new Socket("192.168.8.235",12345);
        DataInputStream dis = null;
        DataOutputStream dos = null;

        //2.发送城市名称
        boolean falg = true;
        while (falg) {
   
         dos = new DataOutputStream(socket.getOutputStream());
         String clientMessageString = in.next();
         dos.writeUTF(clientMessageString);
         
         //System.out.println("请求查询天气: 北京");
         
         
         
         //3.接受返回结果使用输入流
         
         dis = new DataInputStream(socket.getInputStream());
         
         String result = dis.readUTF();
         
         System.out.println(result);
         
         if ("exit".equals(clientMessageString)) {
          //4.关闭流
          
          dis.close();
          
          dos.close();
          falg = false;
         }
  }

        

       

    }
}

3.Server类的内容

package web_service;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class WeatherServer {
 public static void main(String[] args) throws IOException{
  final Scanner in = new Scanner(System.in);


  // 1.创建ServerSocket对象

  ServerSocket serverSocket = new ServerSocket(12345);


  while(true){


   // 2.等待客户端连接,阻塞的方法

   final Socket socket = serverSocket.accept();


   Runnable runnable = new Runnable(){

    @Override

    public void run(){

     try{
      boolean falg = true;
      DataInputStream dis = null;
            DataOutputStream dos = null;
      while (falg) {
       
       dis = new DataInputStream(socket.getInputStream());
       
       String cityName = dis.readUTF();
       
       System.out.println(cityName);
       
       
       
       
       
       
       // 4.根据城市名查询天气
       
       String result = in.next();
       
       System.out.println(result);
       
       
       
       // 5.返回查询结果,使用输出流。
       
       dos = new DataOutputStream(socket.getOutputStream());
       
       dos.writeUTF(result);
       
       if ("exit".equals(cityName)) {
        // 6.关闭流
        System.out.println(cityName);
        dis.close();
        
        dos.close();
        falg = false;
       }
      }

      // 3.使用输入流接受客户端发送的请求



      

     }catch(Exception e){

      e.printStackTrace();

     }

    }

   };


   //启动线程

   new Thread(runnable).start();


  }

 }
}

4.先运行Server 再运行Client  客户端像服务端发送消息,服务端接受消息,也可以回复客户端。当客户端输入exit 客户端停止运行。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值