【发布时间】:2012-05-04 10:12:32
【问题描述】:
我正在编写一个 java 小程序,它将打印 telnet 客户端发送到连接的内容。不幸的是,客户端拆分为 1448 个字符。
被证明有问题的代码:
char[] l = new char[5000];
Reader r = new BufferedReader(new InputStreamReader(s.getInputStream(), "US-ASCII"));
int i = r.read(line);
我无法更改 telnet 客户端读取内容的来源,所以我希望这是上述三行的问题。
【问题讨论】:
-
“分裂”是什么意思?目前尚不清楚您的实际问题是什么。您是否收到客户端发送的数据?这段代码可能没问题,问题可能出在试图从发送的数据中理解的代码中。代码在哪里?
-
我在 while 循环中有上面的代码,所以第一次,line 将设置为“猫跑过 th”,第二次,line 将设置为“e路。”然而,字符串当然会比这更长。不过,它始终是 1448 个字符。
-
太好了,您正确获取了数据。现在您需要编写代码来理解它。没有什么可以将角色“粘合”在一起,它们只是一个流。您可以按照您正在实施的协议规则来理解您收到的数据。
-
问题是读入行的长度。我更喜欢读“猫跑过马路”。而不是“The cat runs across th”,然后在下一个迭代中,“e road”。
-
所以编写代码来做到这一点。这样做的“它”不是this“它”。这个“它”只是读取数据。这就是它所做的一切。如果您想将数据组装成更大的块,请编写代码来执行此操作。问题只是你还没有编写任何代码来将字节块粘合在一起。您必须实际实现 协议以获取协议数据单元,因为它是使用协议数据单元is 定义的协议。你还没有这样做,所以你要求的是不可能的。
标签: telnet