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

做童装在哪个网站做广告免费个人网站申请

做童装在哪个网站做广告,免费个人网站申请,书画网站模板,军事新闻今日最新消息视频1.阻塞模式 一个线程来处理多个连接显得力不从心 accept等待连接 是一个阻塞方法 read读取SocketChannel中的数据 是一个阻塞方法 /*** 服务端* param args* throws IOException*/public static void main(String[] args) throws IOException {//建立一个缓冲区ByteBuffer b…

1.阻塞模式

一个线程来处理多个连接显得力不从心

accept等待连接 是一个阻塞方法

read读取SocketChannel中的数据 是一个阻塞方法

 /*** 服务端* @param args* @throws IOException*/public static void main(String[] args) throws IOException {//建立一个缓冲区ByteBuffer byteBuffer = ByteBuffer.allocateDirect(16);//创建一个服务器ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();//给服务器绑定一个端口8000,让客户端来连接serverSocketChannel.bind(new InetSocketAddress(8000));//存储多个客户端的连接通道List<SocketChannel> channels = new ArrayList<>();while(true) { //保证可以多个客户端连接//建立与客户端的连接//SocketChannel 与客户端之间通信的数据通道log.info("等待客户端连接connecting");//accept方法是一个阻塞方法,会让线程暂停,客户端连接建立以后才会继续执行SocketChannel socketChannel = serverSocketChannel.accept();log.info("已连接connected...{}", socketChannel);channels.add(socketChannel);for (SocketChannel sc: channels ) {//接受客户端发送的数据log.info("等待客户端向SocketChannel中传输数据...{}", sc);//read方法是一个阻塞方法,会让线程暂停sc.read(byteBuffer);byteBuffer.flip();//读模式String byteBufferContent = StandardCharsets.UTF_8.decode(byteBuffer).toString();log.info("byteBufferContent={}", byteBufferContent);byteBuffer.clear();//写模式,从0开始log.info("读完毕..{}", sc);}}}
/*** 客户端* @param args* @throws IOException*/public static void main(String[] args) throws IOException {SocketChannel socketChannel = SocketChannel.open();//连接服务端,地址localhost:8000socketChannel.connect(new InetSocketAddress("localhost", 8000));//将hello字符串->byte[]->ByteBuffer->socketChannelsocketChannel.write(StandardCharsets.UTF_8.encode("hello"));System.out.println("waiting...");}

2.非阻塞模式

/*** 服务端* @param args* @throws IOException*/public static void main(String[] args) throws IOException {//建立一个缓冲区ByteBuffer byteBuffer = ByteBuffer.allocateDirect(16);//创建一个服务器ServerSocketChannel serverSocketChannel = ServerSocketChannel.open();//****ServerSocketChannel配置为非阻塞-默认是阻塞true,可以让accept方法变成非阻塞serverSocketChannel.configureBlocking(false);//给服务器绑定一个端口8000,让客户端来连接serverSocketChannel.bind(new InetSocketAddress(8000));//存储多个客户端的连接通道List<SocketChannel> channels = new ArrayList<>();while(true) { //保证可以多个客户端连接//建立与客户端的连接//SocketChannel 与客户端之间通信的数据通道//**非阻塞模式下,如果没有客户端连接accept方法返回null值,线程会继续执行SocketChannel socketChannel = serverSocketChannel.accept();if(null != socketChannel) {log.info("已连接connected...{}", socketChannel);channels.add(socketChannel);}for (SocketChannel sc: channels) {//****SocketChannel配置为非阻塞-默认是阻塞true,可以让read方法变成非阻塞sc.configureBlocking(false);//接受客户端发送的数据//**非阻塞模式下,线程会继续执行,如果没有读取到数据会返回0int read = sc.read(byteBuffer);if(read > 0) {byteBuffer.flip();//读模式String byteBufferContent = StandardCharsets.UTF_8.decode(byteBuffer).toString();log.info("byteBufferContent={}", byteBufferContent);byteBuffer.clear();//写模式,从0开始log.info("读完毕..{}", sc);}}}}

 问题:非阻塞模式,会让线程一直在跑,太忙了,不能这么用。参考后续的Selector用法。

http://www.shuangfujiaoyu.com/news/49896.html

相关文章:

  • 做美食教程的网站有哪些关键词筛选
  • 优量汇广告平台seo网站关键词排名优化
  • 政府门户网站建设需求北京疫情最新新闻
  • 济南网站APP网站seo推广计划
  • 在哪可以找到做网站的如何免费发布广告
  • 网站建设销售开场百度首页的ip地址
  • 贵阳网站设计公司品牌型网站制作价格
  • html页面布局无锡seo网站管理
  • 深圳网络推广公司怎么样建站网站关键词优化
  • 武汉品牌网站建设公司排名志鸿优化网官网
  • 用jsp做网站的代码免费找客源软件
  • 查询数据的网站怎么做上海关键词推广
  • 静态网站开发技术和动态网站开发技术的区别app下载注册推广平台
  • 东莞外贸网络推广网站优化 福州
  • 东莞软件seo接单
  • 益阳做网站公司最全bt搜索引擎
  • 自己怎样做网站平台关键词排名优化营销推广
  • 可以做日照分析图的网站域名是什么意思呢
  • 怎么做北京赛网站大型门户网站建设
  • 山东网站建设推广外包推广公司
  • 腾讯做网站上传网页设计与制作考试试题及答案
  • 闵行做网站公司如何做一个网页
  • 网站制作地点app运营方案
  • 国内优秀的网站短视频平台推广方案
  • 网站web做信息流广告模板
  • 广州建网站兴田德润很好夸克搜索引擎入口
  • 邯郸品牌策划设计南昌seo排名外包
  • 东莞市建设规划局网站如何做网址
  • 网站登录页面盗号怎么做百度一下你就知道了
  • 网站扁平结构搜索引擎优化英文简称为