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

襄阳网站seo诊断有做机械工装的网站吗

襄阳网站seo诊断,有做机械工装的网站吗,青岛网站建设 熊掌号,怎样做一家网站如果你不想使用循环来监听客户端的连接和数据#xff0c;你可以使用Java NIO#xff08;New I/O#xff09;的Selector类来实现非阻塞的Socket监听。Selector类提供了一种选择一组已经就绪的通道的机制#xff0c;这样你就不需要使用循环来等待连接和数据。 以下是使用Sel…如果你不想使用循环来监听客户端的连接和数据你可以使用Java NIONew I/O的Selector类来实现非阻塞的Socket监听。Selector类提供了一种选择一组已经就绪的通道的机制这样你就不需要使用循环来等待连接和数据。 以下是使用Selector类的示例代码 private ServerSocketChannel serverSocketChannel; private Selector selector;private void startServer() throws IOException {serverSocketChannel ServerSocketChannel.open();serverSocketChannel.configureBlocking(false);serverSocketChannel.socket().bind(new InetSocketAddress(8888));selector Selector.open();serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);while (true) {int readyChannels selector.select();if (readyChannels 0) {continue;}SetSelectionKey selectedKeys selector.selectedKeys();IteratorSelectionKey keyIterator selectedKeys.iterator();while (keyIterator.hasNext()) {SelectionKey key keyIterator.next();if (key.isAcceptable()) {handleAcceptableKey(key);} else if (key.isReadable()) {handleReadableKey(key);}keyIterator.remove();}} }private void handleAcceptableKey(SelectionKey key) throws IOException {ServerSocketChannel serverChannel (ServerSocketChannel) key.channel();SocketChannel clientChannel serverChannel.accept();clientChannel.configureBlocking(false);clientChannel.register(selector, SelectionKey.OP_READ);Log.d(Server, 设备已连接); }private void handleReadableKey(SelectionKey key) throws IOException {SocketChannel channel (SocketChannel) key.channel();ByteBuffer buffer ByteBuffer.allocate(1024);int bytesRead channel.read(buffer);if (bytesRead -1) {channel.close();Log.d(Server, 设备已断开连接);return;}buffer.flip();byte[] data new byte[buffer.limit()];buffer.get(data);String receivedData new String(data);Log.d(Server, 接收到数据 receivedData);// 处理接收到的数据// 回复客户端ByteBuffer responseBuffer ByteBuffer.wrap((已接收到数据 receivedData).getBytes());channel.write(responseBuffer); } 在上面的代码中我们首先创建一个ServerSocketChannel对象并将其配置为非阻塞模式。然后我们将ServerSocketChannel绑定到指定的端口并将其注册到Selector中以便监听客户端连接。 在while循环中我们使用selector.select()方法来选择已经就绪的通道。如果没有就绪的通道我们可以继续等待。一旦有通道就绪我们使用selector.selectedKeys()方法获取已选择的键集合并使用迭代器遍历这些键。 在迭代器循环中我们根据键的类型判断通道是否可接受连接或可读取数据。如果是可接受连接的通道我们使用handleAcceptableKey()方法处理。如果是可读取数据的通道我们使用handleReadableKey()方法处理。 在handleAcceptableKey()方法中我们使用serverChannel.accept()方法来接受客户端连接并将客户端通道注册到Selector中以便监听客户端发送的数据。 在handleReadableKey()方法中我们首先读取客户端发送的数据并将其存储在ByteBuffer中。如果读取到的字节数为-1表示客户端断开连接我们关闭通道并在日志中打印出设备已断开连接。如果读取到有效的数据我们可以在代码中处理这些数据并通过通道向客户端发送回复。 请注意这只是一个使用Selector的简单示例代码。你需要根据你的实际需求进行适当的修改和优化。 希望这可以解决你的问题
http://www.yutouwan.com/news/53730/

相关文章:

  • 请人做网站得多少钱php后台网站开发教程
  • 旅游网站系统建设一个购物交易网站怎么做
  • 建ic网站广西智能网站建设平台
  • 排版设计模板安新seo优化排名网站
  • 庆阳网站设计京东官网登录
  • 网站没有问题但是一直做不上首页开发软件开发
  • 手机微网站模板手机建站平台哪个便宜
  • 怎么做短链接网站建网站做外贸
  • 网站首页代码怎么做网站怎么发布到服务器
  • 大气物流网站源码浙江省建设培训中心网
  • 怎么看出是模板网站网站建设的请示
  • 做外贸的数据网站有哪些选择做印象绍兴网站的原因
  • 娄底网站建设设计大连企业网站建设
  • 做服装外贸哪个网站好wordpress微信收款
  • 爱站长尾关键词挖掘工具江门恒达互联网网站建设
  • 公司做网站需要准备哪些资料wordpress图片无法显示
  • 在谷歌上做英文网站网站的步骤
  • 北京手机网站设计南宁有做网站的公司吗
  • 做视频网站注意什么问题全国企业信息系统查询系统
  • 杭州高端定制网站注册公司名字核名查询系统
  • 黑白网站模板o2o平台有哪些行业
  • 电脑软件下载平台哪个好seo长沙
  • 招聘网有哪些网站比较好网站生成手机站
  • 郑州专业网站设计公司地址会计培训班初级费用
  • 开发区网站建设公司福州制作网站设计找哪家公司
  • 赤坎手机网站建设wordpress常规选项
  • 做流量的网站多语言免费网站建设
  • 苏州建网站的公司济南公司制作网站
  • 政协网站建设申请函广东网站建设微信商城开发
  • seo网站快速排名外包仿团购网站模板