当前位置: 首页 > wzjs >正文

哈尔滨网站制作方案站长统计app软件下载2021

哈尔滨网站制作方案,站长统计app软件下载2021,沧州快速关键词排名优化,如何制作企业网站DAY13.2 Java核心基础 多线程下的网络编程 基于单点连接的方式,一个服务端对应一个客户端,实际运行环境中是一个服务端需要对应多个客户端 创建ServerSocketNable类,多线程接收socket对象 public class ServerSocketNable implements Run…

DAY13.2 Java核心基础

多线程下的网络编程

基于单点连接的方式,一个服务端对应一个客户端,实际运行环境中是一个服务端需要对应多个客户端

创建ServerSocketNable类,多线程接收socket对象

public class ServerSocketNable implements Runnable {private Socket socket;public ServerSocketNable(Socket socket) {this.socket = socket;}@Overridepublic void run() {//接收消息InputStream inputStream = null;DataInputStream dataInputStream = null;try {inputStream = socket.getInputStream();dataInputStream = new DataInputStream(inputStream);String s = dataInputStream.readUTF();System.out.println(Thread.currentThread().getName() + "服务器接收到的消息:" + s);} catch (IOException e) {throw new RuntimeException(e);} finally {try {inputStream.close();dataInputStream.close();socket.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}

创建ClientNable对象,实现给服务器发消息的任务

public class ClientNable implements Runnable {private Integer num;public ClientNable(Integer num) {this.num = num;}@Overridepublic void run() {// 创建一个Socket对象,需要指定服务器的IP地址和端口号OutputStream outputStream = null;DataOutputStream dataOutputStream = null;Socket socket = null;try {socket = new Socket("127.0.0.1", 8080);outputStream = socket.getOutputStream();dataOutputStream = new DataOutputStream(outputStream);dataOutputStream.writeUTF("你好,我是客户端:" + num);} catch (IOException e) {throw new RuntimeException(e);} finally {try {outputStream.close();dataOutputStream.close();socket.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}

服务器启动

public static void main(String[] args) {Socket socket = null;try {ServerSocket serverSocket = new ServerSocket(8080);while (true) {socket = serverSocket.accept();ServerSocketNable serverSocketNable = new ServerSocketNable(socket);Thread thread = new Thread(serverSocketNable);thread.start();}} catch (IOException e) {throw new RuntimeException(e);} finally {try {socket.close();} catch (IOException e) {throw new RuntimeException(e);}}
}

客户端启动

public static void main(String[] args) {for (int i = 0; i < 100; i++) {Thread thread = new Thread(new ClientNable(i));thread.start();}
}

这样就实现了多线程收发的功能,效率更高,开发中使用更加常见

部分代码输出:

可以看见不是顺序执行的

image-20250318233326607

http://www.dtcms.com/wzjs/528834.html

相关文章:

  • 有没有医学生做课件的网站百度官方电话号码
  • 邯郸网站制作公司北京seo公司
  • 重庆开县网站建设公司推荐淮北网站建设
  • 徐州提供网站建设报价表设计网站排行
  • 怎么简单做网站排名搜索引擎优化怎么做的
  • 任丘建设网站制作上海排名seo公司
  • 福州网站建设资讯b站推广在哪里
  • 木材网站建设哪家好外贸网站外链平台
  • 杭州如何设计公司网站百度推广运营
  • 乐山北京网站建设网站产品怎么优化
  • 网站内容与目录结构2023免费b站推广大全
  • 创业网站推广怎么做成功的网络营销案例
  • 泗水做网站刚开的店铺怎么做推广
  • 美食网站开发流程网页设计一般用什么软件
  • 松江新城投资建设发展有限公司网站今日国际新闻头条15条
  • 唐山网站建设外包公司软文营销的作用
  • wordpress去除标签层级推广优化网站排名教程
  • c 做网站 知乎0元做游戏代理
  • 老男孩设置wordpress数据库静态化优化大师手机版下载安装app
  • 商城网站制作的教程百度热点榜单
  • 重庆网站营销seo推广经验
  • 有做赌博网站的么seo培训公司
  • 上海网站建设的价格网站备案是什么意思
  • 网站建设一条深圳市龙华区
  • 有没有做软件的网站软文网站推广法
  • 网站开发建设挣钱吗宁波seo网络推广定制
  • 如何给网站添加cnzz网络平台
  • 软件推广方案廊坊seo关键词排名
  • 提供做网站班级优化大师app
  • 做外贸推广要做哪些平台合肥seo快排扣费