首先,为了让问题更容易理解,我对 Java 网络有一个相当了解,但是到目前为止我所做的所有网络都是发送命令-> 等待响应-> 重复. 最近我在业余时间尝试了一些有点不同的东西。我想连接到 Mud,我使用标准的泥客户端。但是,我开始思考并决定我是否可以创建一个服务器,然后连接到泥浆(所以,我会使用我的客户端连接到中间服务器,然后它会正确连接到泥浆) . 大多数情况下,这只是为了看看我一开始是否可以(我和几个朋友想建立游戏外聊天等),但我遇到了一些问题,现在想解决它们以供将来参考,因为它们看起来很公平重要的。
到目前为止,我设置了一个 ServerSocket,接受一个客户端连接,生成 BufferedReaders/PrintWriters 来保存输入和输出流(在每个新连接的线程内)。然后我在该客户端线程内生成第二个线程以连接到泥,然后不断循环读取行并将它们输出到客户端线程的输出流。客户端线程循环等待命令输入,并对其进行处理。
我不确定这种方法是否合适(正如我所提到的,我从未做过必须同时处理输入和输出的 Socket 编程)。主要问题是输出只是在几行后停止。服务器很好地连接到泥浆,它打印了大约 12 行左右的登录屏幕(我可以澄清这个数字,如果它很重要,双行间距使它有问题)。我环顾四周,在其他问题中提到需要发送字节序列(telnet 协商?我不熟悉该术语)以避免类似问题,但我找不到有关该问题的具体信息。
我相当确定这是我不知道的技术性问题,但是如果有人可以向我指出一些资源或提供通用解决方案等,那就太好了。