`

NIO 阻塞实现

    博客分类:
  • java
 
阅读更多
/**
 * http://www.cnblogs.com/caca/archive/2012/03/06/3585295.html
 **/
public void processx(SocketChannel channel) {
		byte[] bytes = new byte[512];
		ByteBuffer buffer = ByteBuffer.wrap(bytes);
		try {

			channel.configureBlocking(true);
			channel.read(buffer);

			byte[] data = buffer.array();
			int len = getContentLength(data);
			String imei = getContent(data, len);
			LOG.info("imei receive: " + imei);
			persistent(imei);

			byte[] result = new byte[] { 0 };
			buffer.clear();
			channel.write(ByteBuffer.wrap(result));

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			close(channel);
		}
	}
分享到:
评论

相关推荐

    高性能网络编程必备技能之IO与NIO阻塞分析

    本文将重点探讨Java中的IO(Input/Output)和NIO(Non-blocking I/O)模型,以及它们在处理阻塞问题上的差异。 IO模型在Java中是基于流的,它主要通过`InputStream`和`OutputStream`接口及其子类来实现数据的读写。...

    基于JavaNIO的非阻塞通信的研究与实现

    ### 基于Java NIO的非阻塞通信的研究与实现 #### 摘要 本文探讨了Java NIO(New I/O)框架中的非阻塞通信机制,并对其原理及应用进行了深入研究。NIO是一种现代I/O处理方法,通过引入缓冲区、通道和选择器等新概念...

    基于NIO非阻塞的java聊天demo(支持单聊和群聊)

    在这个基于NIO非阻塞的Java聊天demo中,我们将会看到如何利用NIO实现一个支持单聊和群聊的应用。 首先,NIO的核心组件包括Channel、Buffer、Selector和Pipe。在传统的IO模型中,数据是从流的一端流向另一端,而在...

    Java NIO非阻塞服务端与客户端相互通信

    本教程将深入讲解如何使用Java NIO实现非阻塞服务端与客户端的通信。 1. **Java NIO基础** - **通道(Channels)**:NIO中的通道类似于传统IO的流,但它们可以同时读写,并且支持非阻塞操作。 - **缓冲区...

    使用NIO实现非阻塞socket通信

    本项目利用NIO实现了一个简单的非阻塞socket通信的聊天工具,使得在高并发环境下,服务器能够同时处理多个客户端连接,提高系统性能。 1. **非阻塞I/O**: 在BIO模型中,读写操作是阻塞的,即当没有数据可读或无法...

    JavaSocket学习---NIO实现非阻塞的通信

    本篇文章将围绕"JavaSocket学习---NIO实现非阻塞的通信"这一主题,深入探讨NIO如何应用于Socket通信,以提高程序的效率。 首先,我们来看`EchoServerNoBlock.java`,这是基于NIO的服务器端程序。传统的Socket服务器...

    Java Socket学习---nio实现阻塞多线程通信

    本篇文章将深入探讨如何使用Java NIO(非阻塞I/O)来实现阻塞多线程通信,这对于高性能服务器端应用尤其重要。我们将会分析`EchoServer.java`、`EchoClient.java`和`SocketUtils.java`这三个文件中的关键知识点。 ...

    自己写的Java NIO 同步不阻塞IO操作

    描述中提到的"用nio想的一个不阻塞NIOSocket例子"可能是一个Java NIO的Socket通信示例,利用NIO的Channel和Selector来实现客户端和服务器之间的非阻塞通信。通常,NIO中的SocketChannel用于网络通信,Selector用于...

    java nio 实现socket

    在探讨如何使用Java NIO实现Socket通信之前,我们需要先理解NIO(Non-blocking I/O,非阻塞I/O)与传统阻塞I/O之间的区别。 **传统阻塞I/O模型**:在传统的Java IO编程中,当我们调用`read()`或`write()`方法时,...

    Java-NIO非阻塞服务器示例.docx

    本资源主要讲解了Java-NIO非阻塞服务器的示例,通过使用Java-NIO包来实现非阻塞的服务器端模式。下面是从代码中提取的知识点: 一、Java-NIO包简介 Java-NIO(New I/O)包是Java 1.4版本中引入的新IO处理机制,...

    基于java的BIO、NIO、AIO通讯模型代码实现

    Java作为一门广泛使用的开发语言,提供了多种I/O(Input/Output)通信模型,包括传统的阻塞I/O(BIO)、非阻塞I/O(NIO)以及异步I/O(AIO)。这些通信模型在不同的场景下有着各自的优势,理解和掌握它们对于优化...

    NIO编程实现实例

    而NIO引入了非阻塞I/O和选择器(Selector),使得单个线程可以同时处理多个连接,从而提高了服务器的并发能力。 NIO的核心组件包括通道(Channel)、缓冲区(Buffer)和选择器(Selector)。通道是数据读写的基础,...

    基于nio实现的多文件上传源码

    总的来说,基于NIO实现的多文件上传源码充分利用了NIO的非阻塞特性和并发能力,提高了文件传输效率,尤其适用于文件小但数量大的场景。在理解和应用这个源码时,深入研究NIO的原理和实践,将有助于进一步提升系统的...

    Android开发进阶之NIO非阻塞包

    1. **SocketChannel**:这是NIO中用于网络通信的核心类之一,它可以创建非阻塞的Socket连接,从而实现非阻塞的数据传输。 - **创建SocketChannel**:可以通过`SocketChannel.open()`来创建一个新的SocketChannel...

    java nio非阻塞编程-高级应用(端口代理)

    经过我2个月的深入学习,反复修改测试,开发出一个已经能稳定使用的端口代理程序,源代码没有应用所有nio知识,但比较全面的覆盖了nio编程中需要注意的几点,如果有什么问题,可以联系我:gypzfabc@126.com

    用java的nio技术实现的异步连接池

    ### 使用Java NIO技术实现的异步连接池 #### 异步连接池的诞生背景及意义 在现代软件开发特别是Web应用开发过程中,为了提升应用性能和服务质量,开发者经常使用常连接和连接池技术。传统的连接池技术在面对单一...

    基于nio的简易聊天室

    在Java编程领域,NIO(New Input/Output)是一个重要的概念,它提供了非阻塞I/O操作的能力,相比传统的BIO(Blocking I/O),在处理大量并发连接时表现出更高的效率和性能。本项目"基于nio的简易聊天室"旨在通过NIO...

    ScalableIOJava(NIO如何实现Selector模式的).pdf

    NIO,全称为Non-blocking I/O(非阻塞I/O),是Java提供的一种用于处理网络通信或文件I/O的编程模型。它与传统的阻塞式I/O相对,能够在等待I/O操作完成期间同时执行其他操作,显著提高了I/O操作的效率。本文档的作者...

    Nio非阻塞socket通信demo

    Java NIO(New IO)是Java 1.4版本引入的一种新的I/O API,它提供了非阻塞式的I/O操作,极大地提高了Java处理I/O的能力。在这个“Nio非阻塞socket通信demo”中,我们可以深入理解NIO在Socket通信中的应用。 1. **...

    NIO实现邮件接收原码

    在Java编程领域,NIO(New IO)是一种用于处理I/O操作的非阻塞I/O模型,相较于传统的IO,NIO提供了更高效的数据传输方式。本篇将详细讲解如何使用NIO实现邮件接收,主要涉及JavaMail API和NIO的核心概念。 首先,...

Global site tag (gtag.js) - Google Analytics