gpt4 book ai didi

java - 从 ByteBuffer 中提取 -字符串 - 我很困惑

转载 作者:行者123 更新时间:2023-11-30 04:58:56 27 4
gpt4 key购买 nike

我已经解决这个问题几个小时了,但没有让它按照我希望的方式工作。

我正在创建一个从 telnet 客户端读取数据的服务器。服务器使用 java.nio (ServerSocketChannel) 并读取 ByteBuffer。在每次 read() 之后,我调用一个方法,该方法应该从 ByteBuffer 中提取所有行(用“\r\n”分隔),并以某种方式保留剩余的字节(如果有),以便下一个 read() 放置它们位于正确的位置。

示例:

read() 读取 6 个字节,ByteBuffer 现在包含“Hi\r\nHo”。我想要做的是提取所有完全收到的字符串,在本例中为“Hi\r\n”。我希望将“Ho”留在 ByteBuffer 中,进行移位,以便“H”位于位置 0,这样当我下次调用 read() 并收到“w are you?\r\n”时,它会被放置在 ByteBuffer 中的正确位置。

我创建了一个小型测试程序,但我似乎无法让它正确执行:http://pastebin.com/eun1nV2N

尝试不同的测试字符串(“HI”、“HI\r\n”、“HI\r\nHEY\r”等),您会看到它何时失败。 (我使用eclipse调试工具来检查变量)

最佳答案

尝试将 ByteBuffer 包装为一个 InputStream 和一个 BufferedReader,然后您应该能够使用 readline 来逐行获取行。

关于java - 从 ByteBuffer 中提取 <CRLF>-字符串 - 我很困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7585618/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com