BIO实例

article/2025/3/17 20:15:12
  1. 使用 BIO 模型编写一个服务器端,监听 6666 端口,当有客户端连接时,就启动一个线程与之通讯。
  2. 要求使用线程池机制改善,可以连接多个客户端.
  3. 服务器端可以接收客户端发送的数据(telnet 方式即可)。

在这里插入图片描述

代码演示:

package com.atguigu.bio;import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;public class BIOServer {public static void main(String[] args) throws Exception {//线程池机制//思路//1. 创建一个线程池//2. 如果有客户端连接,就创建一个线程,与之通讯(单独写一个方法)ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();//创建ServerSocketServerSocket serverSocket = new ServerSocket(6666);System.out.println("服务器启动了");while (true) {System.out.println("线程信息 id =" + Thread.currentThread().getId() + " 名字=" + Thread.currentThread().getName());//监听,等待客户端连接System.out.println("等待连接....");final Socket socket = serverSocket.accept();System.out.println("连接到一个客户端");//就创建一个线程,与之通讯(单独写一个方法)newCachedThreadPool.execute(new Runnable() {public void run() { //我们重写//可以和客户端通讯handler(socket);}});}}//编写一个handler方法,和客户端通讯public static void handler(Socket socket) {try {System.out.println("线程信息 id =" + Thread.currentThread().getId() + " 名字=" + Thread.currentThread().getName());byte[] bytes = new byte[1024];//通过socket 获取输入流InputStream inputStream = socket.getInputStream();//循环的读取客户端发送的数据while (true) {System.out.println("线程信息 id =" + Thread.currentThread().getId() + " 名字=" + Thread.currentThread().getName());System.out.println("read....");int read =  inputStream.read(bytes);if(read != -1) {System.out.println(new String(bytes, 0, read)); //输出客户端发送的数据} else {break;}}}catch (Exception e) {e.printStackTrace();}finally {System.out.println("关闭和client的连接");try {socket.close();}catch (Exception e) {e.printStackTrace();}}}
}

演示

快捷键win+R打开cmd窗口,根据上面代码拼写6666端口
输入

telnet 127.0.0.1 6666

进入黑窗口
在这里插入图片描述
输入ctrl+]
向服务端发送文本

send hello world

在这里插入图片描述
服务端接收的
在这里插入图片描述
当有
多个cmd窗口时,则创建多一个线程与之对应

退出时,cmd输入

quit

服务端显示
在这里插入图片描述

参考资料

来自b站尚硅谷视频而来
尚硅谷韩顺平Netty视频教程(2019发布)


http://chatgpt.dhexx.cn/article/i5HJFMwV.shtml

相关文章

利用 bioconda 管理生物信息软件

利用 bioconda 管理生物信息软件 如需视频讲解,请移步:一只小蛮要 【要知道 bioinfo】利用 bioconda 管理生物信息软件 1 了解 conda,anaconda,miniconda,bioconda 1.1 conda conda是一个软件模块管理工具&#xff…

IMex和IntAct数据库简介

欢迎关注微信公众号《生信修炼手册》! 蛋白质相互作用的数据库非常的多,比如DIP, MINT, IntAct, BioGRID等,不同数据库中的信息存在了大量的冗余,而且在不同数据库之间进行检索也非常的费力,为了减少不同数据库的冗余&#xff0c…

【Bio】基础生物学 - 基因 gene

文章目录 1. DNA 脱氧核糖核酸、RNA 核糖核酸1.1 核苷酸1.2 脱氧核糖核酸1.3 核糖核酸 2. 基因2.1 基因组2.2 染色体2.3 基因与脱氧核苷酸的牵连2.4 基因与DNA的牵连2.5 基因与染色体的牵连 Ref 1. DNA 脱氧核糖核酸、RNA 核糖核酸 1.1 核苷酸 核苷酸 (Nucleotide) \blue{\tex…

Bioedit 使用

1. 下载: 地址一搜就有,软件界面如下 BioEdit Download - Research software utility for creating and editing biological sequences 2. 酶切位点分析 构建过表达质粒、双荧光素酶质粒必用功能。以人的MYOD1基因为例 ,分析酶切位点。 &…

BIO~~

BIO~~ 第一章 Java的I/O演进之路2.1 I/O 模型基本说明2.2 I/O模型Java BIOJava NIOJava AIO 2.3 BIO、NIO、AIO 适用场景分析 第三章 JAVA BIO深入剖析3.1 Java BIO 基本介绍3.2 Java BIO 工作机制3.3 传统的BIO编程实例回顾客户端案例如下服务端案例如下小结 3.4 BIO模式下多发…

python处理数据的一些代码

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、如何读取txt文件,将其转化为DataFrame格式二、给DataFrame添加列名三、删除指定行四、读取csv文件,不让第一行成为列名五、读取DataFram…

BioGRID:蛋白质相互作用数据库

欢迎关注微信公众号《生信修炼手册》! BioGRID数据库是一个老牌经典的蛋白质相互作用数据库,在今年9月份刚刚分布了最新版本3.5.165,该版本从66,164篇文献中整理出了1,607,037个蛋白质相互作用,28,093个嵌合体信息以及726,378个转录后修饰PTM…

(NCRE网络技术)中小型网络系统总体规划与设计方法-知识点

欢迎您阅读此系列文章,文章参考自《全国计算机等级考试三级教程.网络技术》。内容为NCRE三级网络技术主要知识点以及常考点,此知识点总结参照《三级网络技术考试大纲(2018年版)》。阅读此系列文章可以帮助您快速、轻松考取相应证书!祝您阅读愉…

Linux系统如何查看服务器带宽及网络使用情况

文章目录 前言  linux查看服务器带宽具体方法  一、使用speedtest-cli命令查看下载和上传最大流量值  二、查看网卡、网络的详情   1.查看服务器网络端口   2.ethtool命令查看宽带大小 三、nload命令实时统计网卡带宽使用率  四、dstat -n命令实时监测网络的状态…

计算机网络的组成及其逻辑结构

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、计算机网络的组成 计算机系统: 数据通信系统 网络软件及网络协议 二、计算机网络的逻辑结构 资源子网 通信子网 总结 前言 计算机网络是在20世纪6…

Linux中centos修改系统时间并写到硬件,Linux中centos设置定时自动同步网络时间

文章目录 前言一、centos修改系统时间并写到硬件1.1查看当前的系统时间1.2修改系统时间1.3查看硬件时间1.4同步系统时间和硬件时间1.5本地时间写入硬件时间 二、centos设置定时自动同步网络时间2.1安装ntpdate工具2.2CentOS安装/操纵crontab2.3启动crontab并查看状态2.4写一个c…

计算机网络的发展简史

目录 前言一、互联网发展历史1. 第一阶段:ARPANET2. 第二阶段:三级结构互联网3. 第三阶段:多层次ISP互联网 二、中国互联网的发展简史1. 发展阶段2. 公共网络 总结 前言 时间是2022年的6月,当真正的注意到现在的时间时不禁感叹时…

浅谈网络舆情监测系统中爬虫的设计及系统架构

前言 说到网络舆情监测想必很多人都不陌生。可以跟大家这么说吧。爬虫所能带来的商业价值适用并深存于所有小-中-大企业中,尤其做网络舆情的大数据公司所有的业务基本都必须依托于爬虫来开展它的战略布局,毕竟有了米才能做饭嘛~ 不信的话我简单的来采访一下做舆情项目的相关…

基于java的网络在线考试管理系统的设计与实现--毕业开题报告

基于java的网络在线考试管理系 统的设计与实现开题报告–毕业设计 最近grace刚完成毕业设计 通过了赶紧来给宝贝们分享我的成果哈哈 设计题目:基于java的网络在线考试管理系统的设计与实现 一、选题依据: 1.国内外有关的研究动态 在线考试系统在国内…

校园网系统集成方案设计

校园网系统集成方案设计 第一篇的文章献给我的网络系统集成大作业,这篇文章是关于校园网系统集成方案的设计,文章有很多不足仅限于我目前的水平。 第一章 前言 随着经济的发展,信息起着越来越重要的作用。计算机、网络和多媒体等信息技术的…

VM虚拟机上的网络设置

1. 前言 一般Linux编程时,经常都会使用虚拟机跑Linux系统,VMware Workstation Pro 虚拟机里的系统不管是Linux、还是windows、还是其他系统想要上网就必须配置好虚拟网络连接方式。VMware Workstation 支持共享、桥接,选择网卡的方法自定义上网方式。 如果虚拟机里的系统想…

Cisco Packet Tracer 网络系统工程实训大作业【附网络拓扑图】

文章目录 前言网络拓扑图资源项目基本要求项目一项目二项目三 实验原理静态路由基本原理VLAN基本原理OSPF的基本原理 项目的实现项目一的设计与实现网络拓扑图接口信息配置流程连通性测试 项目二的设计与实现网络拓扑图接口信息配置流程连通性测试 项目三的设计与实现网络拓扑图…

零信任网络

“前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。” 前言 - 床长人工智能教程 零信任: 零信任概念是由网络去边界化发展改进而来。之前网络的建设理念中,将网络分…

Linux系统中网络管理命令和查看网络配置的命令

前言 这是我听老师讲课做的笔记,考试要看的。 这是视频地址 作者:RodmaChen 关注我的csdn博客,更多Linux笔记知识还在更新 说明:本人只在csdn写博客,如果在其他网站上看到,请不要信 网络管理命令和查看网络配置的命令 …

基于卷积神经网络的电影推荐系统

基于卷积神经网络的电影推荐系统 前言1.实现效果1.1 算法运行结果1.2 系统主要界面 2.主要代码实现2.1 网络模型代码2.2 django代码 前言 如今协同过滤等传统推荐算法被广泛用于推荐,但也存在冷启动、矩阵稀疏等问题,本项目用深度学习来实现电影推荐&am…