gpt4 book ai didi

c# - Java 套接字从 C# 读取字节

转载 作者:行者123 更新时间:2023-12-01 13:27:08 25 4
gpt4 key购买 nike

我正在尝试读取从 C# 应用程序发送的 Java 应用程序中的 byte[]

但是,当我在 C# 中将 string 编码为 byte[] 并使用下面的代码在 Java 中读取它时,我得到了除最后一个字符之外的所有字符。这是为什么?

Java接收代码:

int data = streamFromClient.read();
while(data != -1){
char theChar = (char) data;
data = streamFromClient.read();
System.out.println("" + theChar);
}

C# 发送代码:

public void WriteMessage(string msg){

byte[] msgBuffer = Encoding.Default.GetBytes(msg);
sck.Send(msgBuffer, 0, msgBuffer.Length, 0);
}

最佳答案

虽然其他人已经提供了可能的解决方案,但我想展示我将如何解决这个问题。

int data;
while((data=streamFromClient.read()) != -1) {
char theChar = (char) data;
System.out.println("" + theChar);
}

我只是觉得这种方法会更清晰一点。请随意选择您更喜欢的。

澄清一下:您的接收代码有错误。您读取了最后一个字节,但从未处理过它。在每次迭代中,您都会打印出上一次迭代中收到的字节值。因此,当 data 为 -1 时,将处理最后一个字节,但您不进入循环,因此不会打印它。

关于c# - Java 套接字从 C# 读取字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21757376/

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