gpt4 book ai didi

java - 通过套接字传输空字符时出现问题

转载 作者:可可西里 更新时间:2023-11-01 02:47:52 26 4
gpt4 key购买 nike

我正在编写一个小型 Java 服务器和一个匹配的 C++ 客户端,它们通过 STOMP protocol 实现了一个简单的 IM 服务。 .

协议(protocol)指定每个(如果您愿意,在服务器和客户端之间传递的消息)必须以空字符结尾,在代码中我将其称为'\0',在 Java 和 C++ 中。

但是,当我通过套接字通过 TCP 传输帧时,空字符根本不会出现在任何一侧。我正在使用 UTF-8 编码,并尝试切换到 ASCII,但没有帮助。

我做错了什么?

最佳答案

无论您是以 ASCII 还是 UTF-8 编码文本,您都将“字母”转换为字节流(字节编码)。您需要在消息字符串的末尾添加一个零字节。

[猜测] 您可能正在使用带有“WriteLine(String line)”之类方法的高级库通过网络发送数据。该方法的文档描述了实际发送的字节,通常包括当前编码(ASCII、UTF-8 等)中的消息文本编码,后跟行终止序列,通常是字节 13、10m 或它们的组合('\n'、'\r\n')。

使用低级 Write() 方法或 WriteBytes() 方法(取决于您的库)。将文本转换为ASCII或UTF-8,在末尾添加零字节,并准确发送您要发送的内容。

关于java - 通过套接字传输空字符时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/572831/

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