Java、NIO、单线程读写

Java、NIO、单线程读写,java,thread-safety,nio,Java,Thread Safety,Nio,我尝试构建简单的客户端应用程序,将数据发送到服务器并从服务器接收数据。 在大多数情况下,它将异步交换数据(除了日志记录过程) 我已经阅读了很多教程、帖子等,但我找不到足够的描述(我是java新手)如何为以下内容构造代码: 读/写(简单的行-结尾带“\n”的字符串) 重新连接(如果发现错误) 客户端和服务器(我在另一个开发环境中编写过),都在一个线程中 有人能帮我举个简单的例子或addrees吗?我在哪里可以找到简单使用NIO的方法?我发现的所有示例都只用于读写(不是混合)或简单连接、发送数据

我尝试构建简单的客户端应用程序,将数据发送到服务器并从服务器接收数据。 在大多数情况下,它将异步交换数据(除了日志记录过程)

我已经阅读了很多教程、帖子等,但我找不到足够的描述(我是java新手)如何为以下内容构造代码:

  • 读/写(简单的行-结尾带“\n”的字符串)
  • 重新连接(如果发现错误)
客户端和服务器(我在另一个开发环境中编写过),都在一个线程中


有人能帮我举个简单的例子或addrees吗?我在哪里可以找到简单使用NIO的方法?我发现的所有示例都只用于读写(不是混合)或简单连接、发送数据和断开连接,没有解释异常、重新连接。

这不是一个真正的NIO问题,只是一个线程间通信问题


第二个线程将获得与第一个线程相同的异常,并且它可以查看第一个线程在重新连接套接字时可以设置的
重新连接挂起
布尔值。

您可以显示您已经完成了多少工作的代码,以及您的具体问题是什么吗?一篇文章中的问题太多了。NIO对于面向线路的协议或客户端来说都不是一个好的选择。我会使用BufferedWriter和BufferedInputStream以及一些线程。谢谢。我找不到关于NIO和Android的好教程(它是我的java目标平台),因此我尝试使用普通套接字和两个线程(读取和发送数据)。但是我在同步它们时遇到了问题——我指的是一个特殊的错误时刻,需要重新连接(关闭连接并重新设置):两个相互竞争的线程相互争斗(当一个线程出现错误并尝试重新连接时,第二个线程就可以了)。如何同步以避免冲突问题?我不理解问题所在。如果套接字上出现异常,则该异常已失效,必须关闭,除非是读取超时。我不知道你为什么认为“第二个可以”,我的意思是两个线程同时收到异常,当第一个线程将尝试重新连接时,第二个线程也会想这样做,这将是经典的死锁。我找不到第二个的方法,知道进程新连接正在进行,它必须跳过这个以避免问题。