您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

套接字多线程-读取输入流会使线程暂停

套接字多线程-读取输入流会使线程暂停

您正在写的字符串的末尾没有行尾。

            String inputText = input.readLine();
            writer.write(inputText);
            System.out.println("Client 2");

inputText字符串不包括您键入的行尾。然后将其原样写入服务器。但是,服务器尝试读取一行:

        String s = br.readLine();
        System.out.println("Server 3");

因此它将一直等待,直到客户端发送换行符。但是到目前为止,客户端正在等待服务器的答复,现在它们已陷入僵局。

因此,您应该writer.newLine()向客户端以及服务器的回显添加a ,这也会遇到相同的问题。每次写入后,还建议writer.flush()在服务器和客户端上都使用。否则,它可能要等到缓冲区已满后才能进行实际写入,并且将导致相同的死锁。

其他 2022/1/1 18:29:49 有357人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶