![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
socket
Janson_LBJ
改变世界格局
展开
-
NIO编程-网络编程(socket)
1.通过NIO实现网络编程 概述和核心API 前面在进行文件IO 时用到的FileChannel 并不支持非阻塞操作,学习NIO 主要就是进行 网络IO,Java NIO 中的网络通道是非阻塞IO 的实现,基于事件驱动,非常适用于服务器需 要维持大量连接,但是数据交换量不大的情况,例如一些即时通信的服务等等.... 在Java 中编写Socket 服务器,通常有以下几种模式: 一个客户端连接...原创 2019-09-01 18:49:16 · 341 阅读 · 0 评论 -
NIO编程中,报“远程主机强迫关闭了一个现有的连接”IOException
JavaNIO聊天室 中,若客户端强制关闭,服务器会报“Java.io.IOException: 远程主机强迫关闭了一个现有的连接。”,并且服务器会在报错后停止运行,错误的意思就是客户端关闭了,但是服务器还在从这个套接字通道读取数据,便抛出IOException,导致这种情况出现的原因就是,客户端异常关闭后,服务器的选择器会获取到与客户端套接字对应的套接字通道SelectionKey,并且这个k...原创 2019-09-01 21:09:23 · 625 阅读 · 0 评论 -
NIO编程中,socket服务端重启后,客户端报java.nio.channels.ClosedChannelException
这个问题是客户端和服务器的管道关闭了。导致这个问题的原因是服务端程序重启或者关闭重开导致的。 解决这个问题的方法是在捕获异常的时候,对报错位置进行try-catch 。如果报错,先把原来的网络管道socketchannel关闭,重新创建管道并连接服务端,注意不是创建客户端对象而是管道 代码如下: ...原创 2019-09-01 21:53:50 · 1464 阅读 · 0 评论