Java - 通过TCP连接发送无符号字节

时间:2011-08-08 18:58:19

标签: java tcp unsigned signed

由于Java字节是有符号值,我正在尝试与C#程序建立TCP套接字连接,该程序期望字节无符号。

我无法更改C#部分的代码。

如何使用Java以正确的格式发送这些字节。

由于

2 个答案:

答案 0 :(得分:7)

不,Java字节是签名值。通常,C#字节是无符号。 (您需要sbyte类型来引用已签名的字节;我不记得上次使用sbyte时。)

然而,在通过网络传输数据方面完全没有关系 - 通常你只是发送你所获得的任何二进制数据(例如你从文件中读取的数据),双方都会这样做正确的事。 Java端的值为-1的字节将作为C#端的值为255的字节出现。

如果您可以告诉我们更多关于完全您正在尝试做什么(数据是什么)我们可以提供更多帮助,但我强烈怀疑您可以忽略其中的差异这种情况。

答案 1 :(得分:1)

没关系。这些数字只是位的字符串,并且就位而言,它们是有符号或无符号的这一事实并不重要。并且它是传输的位,因此所有签名/未签名的信息都无关紧要。

无论签名/未签名,

1100101010101111仍为1100101010101111