【发布时间】:2011-08-08 18:58:19
【问题描述】:
由于 Java 字节是有符号值,并且我正在尝试与期望字节无符号的 C# 程序建立 TCP 套接字连接。
我无法更改 C# 部分的代码。
如何使用 Java 以正确的格式发送这些字节。
谢谢
【问题讨论】:
由于 Java 字节是有符号值,并且我正在尝试与期望字节无符号的 C# 程序建立 TCP 套接字连接。
我无法更改 C# 部分的代码。
如何使用 Java 以正确的格式发送这些字节。
谢谢
【问题讨论】:
不,Java 字节是 有符号 值。通常 C# 字节是无符号。 (您需要 sbyte 类型来引用有符号字节;我不记得上次使用 sbyte 是什么时候了。)
但是,就通过网络传输数据而言,这根本不重要 - 通常您只需发送您拥有的任何二进制数据(例如您从文件中读取的内容),双方都会做正确的事。 Java 端值为 -1 的字节将作为 C# 端值为 255 的字节传入。
如果您能告诉我们更多确切您正在尝试做什么(数据是什么),我们可能会提供更多帮助,但我强烈怀疑您可以忽略这种情况。
【讨论】:
没关系。这些数字只是位串,就位而言,它们是有符号还是无符号的事实并不重要。而且是传输的位,因此所有有符号/无符号信息都无关紧要。
1100101010101111 仍然是 1100101010101111,无论有符号/无符号。
【讨论】: