擅长:python、mysql、java
<p>读取二进制数据是完全可行的,但是如果android应用程序的二进制表示与Python服务器上的字节表示不同呢?从Python文档中:</p>
<blockquote>
<p>It is perfectly possible to send binary data over a socket. The major
problem is that not all machines use the same formats for binary data.
For example, a Motorola chip will represent a 16 bit integer with the
value 1 as the two hex bytes 00 01. Intel and DEC, however, are
byte-reversed - that same 1 is 01 00. Socket libraries have calls for
converting 16 and 32 bit integers - ntohl, htonl, ntohs, htons where
“n” means network and “h” means host, “s” means short and “l” means
long. Where network order is host order, these do nothing, but where
the machine is byte-reversed, these swap the bytes around
appropriately.</p>
</blockquote>
<p>如果没有代码和示例输入/输出,这个问题将很难回答。我想问题是代表性不同。最有可能的问题是Java使用big-endian,而Python遵循任何运行它的机器。如果您的服务器使用little-endian,那么您需要对此进行解释。有关<a href="http://en.wikipedia.org/wiki/Endianness" rel="nofollow">endianness</a>的更详细的解释,请参阅此处。在</p>