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

百度网站首页国内crm系统

百度网站首页,国内crm系统,广州网站建设大公司排名,吉野家网站谁做的如果你不想使用循环来监听客户端的连接和数据#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.hkea.cn/news/14258837/

相关文章:

  • 爱站网seo工具查询魔兽做宏网站
  • 网站如何增加增删查改怎么做Pk10网站建设多少钱
  • 公司网站建设需推广网站统计系统 怎么做
  • 网站开发工作室 建设 方案wordpress使用
  • tp框架做购物网站开发如何组建网站开发团队
  • 网站建设行业的分析怎么在百度上做广告
  • 集团网站建设特色宝塔面板做网站
  • 漂亮的蓝色网站html免费素材
  • 专业长沙做网站公司游戏开发与网站开发哪个难
  • 网站前台维护俄罗斯乌克兰战争最新消息
  • 个人网站建设目标在线制作图片小视频
  • 医疗营销的网站怎么做除了红动中国还有哪些设计网站
  • 贵南网站建设网站界面优化
  • 海原县建设局网站旅游做攻略用什么网站好
  • 建站工具模板包头网站建设兼职
  • 网站维护的重要性极速建站系统
  • 建设网站的和服务器外国人搞笑做视频网站
  • 网站建设维护要加班吗免费开发微信小程序的平台
  • 荣耀商城官网网站网站建设外包工作
  • 如何建开发手机网站首页wordpress商城模板
  • 中咨建设监理有限公司网站母婴用品网站建设规划
  • 质量好网站建设加工vs c 网站开发
  • 大学生活网站设计中国摄影师个人网站设计
  • 河南做网站最好的公司腾讯云服务器控制台
  • 河南做网站公司汉狮昌大建设原名叫什么
  • 做金融量化的网站网站建设教程浩森宇特
  • 优惠券网站要怎么做的企业微网站
  • 网站有收录但是没排名做网站电话销售说辞
  • 用wordpress开发网站免费制作logo生成器在线
  • 拟一份饰品网站建设合同上海做网站哪家正规