Java NIO编程

本文介绍如何使用 Java NIO 实现一个简单的时间服务器,客户端可以通过发送命令获取当前时间,服务端则根据命令返回相应的时间信息。文章详细展示了服务端和客户端的代码实现,并解释了 NIO 在高并发场景下的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于Java NIO实现一个客户端和服务端通信的一个流程 客户端通过发送获取当前时间的命令,服务端给出回应。

Java的NIO编程 的确比Java阻塞的IO编程复杂很多 但是对性能的提高是很明显的,今天就是想把JavaNIO熟悉一下以便后续的研究Netty,这样会更好点.


服务端主函数:服务端逻辑代码:客户端主函数:客户端逻辑代码:

总结:

IO和NIO 也就是阻塞和非阻塞,那么其实在我们实验的过程中因为条件的原因可能感受不到性能的差距,但是真正到了应用的场景,尤其是在并发量很高的情况下,那么NIO的优势也就体现出来了,其实不管是IO还是NIO java一般的读取操作都是通过建立一个缓冲区 然后往缓冲区写或者从缓冲区读。因为读写都是异步的,因为异步是立马返回,不管有没有读到数据,所以我们要根据读的结果来进行相应的处理,如果返回值大于0那么说明读到了数据,所以就可以进行处理;如果返回值小于0,那么说明对端已经关闭了连接,此时也就关闭连接,那么先发起关闭连接的会有time_wait的状态,会等待2个MSL时间,如果返回0那说明读到了0个数据,可以不进行处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值