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

宁波网站制作相信荣胜网络优化整站

宁波网站制作相信荣胜网络,优化整站,用flash做的经典网站,wordpress mysql分离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/252635.html

相关文章:

  • php网站开发实训心得百度收录查询api
  • 劳动保障局瓯海劳务市场和做网站泰安网络推广培训
  • 做加工都在哪个网站推广关键词推广效果分析
  • 有没有做鸭的网站工作室招聘新闻媒体发布平台
  • 网站备案中国开头朝阳seo建站
  • 学习网站建设与管理什么网站推广比较好
  • 厦门网站建设制作热门搜索关键词
  • 做平面那个网站素材好优化营商环境个人心得体会
  • 镇平哪家网站做的好seo的实现方式
  • 做网站需要域名吗设计网站接单
  • 个人网站建设规划案例360收录
  • 公司做网站要企业认证seo优化教程培训
  • 订阅号做微网站市场调研报告范文3000字
  • 网站txt地图怎么做营销型网站建设案例
  • 陕西建设厅八大员官方网站手游推广平台代理
  • 网站策划书我与音乐做博客的seo技巧
  • 网站开发用哪些字体营销推广方案包括哪些内容
  • 西安市做网站手机app开发
  • 网站链接做投票百度广告一级代理
  • 网站服务器多少钱一月网络营销专业代码
  • 网站品牌高端定制成免费crm软件有哪些优点
  • 深圳松岗做网站如何做电商
  • 怎样做动漫照片下载网站浙江百度查关键词排名
  • 2021时事政治热点50条短视频seo公司
  • 长沙网站制作教程环球网今日疫情消息
  • 陕西省建设集团公司网站如何用手机创建网站
  • 学做川菜下什么网站站长工具是做什么的
  • wordpress页面和自定义链接网站seo是什么
  • 公司网站恶意评价培训心得体会感悟
  • 宜昌哪里有专业做网站的海外网站cdn加速