博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA SOCKET多线程等待接受客户端信息实现
阅读量:5337 次
发布时间:2019-06-15

本文共 1900 字,大约阅读时间需要 6 分钟。

服务端程序:

public class Demo {

 public static void main(String[] args) {

  // TODO 自动生成的方法存根

  try {

   ServerSocket server =new ServerSocket(6666);

   Socket client = null;

   int i=0;

   while(true) {

    client = server.accept();

         new Thread(new ServerThread(client)).start();

    i++;

    System.out.println("当前是第:"+i+"个用户连进来了。接入的客户端的IP地址:"+client.getInetAddress().getHostAddress());

        }

  } catch (Exception e) {    // TODO 自动生成的 catch 块    e.printStackTrace();   }  }

}

class ServerThread implements Runnable{

    Socket client =null;

   ServerThread(Socket temp){

  this.client=temp;

 }

    @Override

 public void run() {

  // TODO 自动生成的方法存根

        try {

   InputStream in = client.getInputStream();

   InputStreamReader reader = new InputStreamReader(in);

   BufferedReader buff = new BufferedReader(reader);

       String str="";

   while((str=buff.readLine())!=null){

      System.out.println("接受到客户端请求:"+str);

     }

             client.shutdownInput();

       OutputStream out = client.getOutputStream();

   PrintWriter p = new PrintWriter(out);

   p.write("欢迎您");

   p.flush();

       reader.close();

   in.close();

   p.close();

   out.close();

      client.close();

        } catch (IOException e) {

   // TODO 自动生成的 catch 块

   e.printStackTrace();

  }  

        }

}

 

客户端程序:

public class Demo {

 public static void main(String[] args) {

  // TODO 自动生成的方法存根

        try {

   Socket client =new Socket(InetAddress.getLocalHost(),6666);

   OutputStream out = client.getOutputStream();

   String str="登录名:张三 密码:123";

   out.write(str.getBytes());

       out.flush();

       client.shutdownOutput(); 

       InputStream in = client.getInputStream();  

  InputStreamReader reader =new InputStreamReader(in);

   BufferedReader buff =new BufferedReader(reader);

   String request="";

   while((request=buff.readLine())!=null) {

    System.out.println("获取服务端返回:"+request);

   }

   out.close();

   reader.close();

   in.close();

   client.close();

      } catch (UnknownHostException e) {

   // TODO 自动生成的 catch 块

   e.printStackTrace();

  } catch (IOException e) {

   // TODO 自动生成的 catch 块

   e.printStackTrace();

  }

 } }

转载于:https://www.cnblogs.com/jack-L/p/10484157.html

你可能感兴趣的文章
SuperMap iServerJava 6R扩展领域开发及压力测试---判断点在那个面内(1)
查看>>
Week03-面向对象入门
查看>>
一个控制台程序,模拟机器人对话
查看>>
web.xml 中加载顺序
查看>>
pycharm激活地址
查看>>
hdu 1207 四柱汉诺塔
查看>>
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)
查看>>
display:none与visible:hidden的区别
查看>>
我的PHP学习之路
查看>>
【题解】luogu p2340 奶牛会展
查看>>
对PostgreSQL的 SPI_prepare 的理解。
查看>>
解决响应式布局下兼容性的问题
查看>>
京东静态网页练习记录
查看>>
使用DBCP连接池对连接进行管理
查看>>
【洛谷】【堆+模拟】P2278 操作系统
查看>>
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>
Solr4.8.0源码分析(5)之查询流程分析总述
查看>>
[Windows Server]安装系统显示“缺少计算机所需的介质驱动程序”解决方案
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>