Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从python套接字向java套接字发送int_Java_Python_Sockets_Networking - Fatal编程技术网

从python套接字向java套接字发送int

从python套接字向java套接字发送int,java,python,sockets,networking,Java,Python,Sockets,Networking,我目前正致力于让python套接字向java套接字发送一个整数,这样java套接字就可以在这个步骤之后读取表示字符串的字节数组 我尝试在结构中发送int,但在java端返回了一个大数字 p = struct.pack('i', len(data)) clientsocket.send(p) 查看7.3.2.1。通过网络发送任何数据时,始终将其转换为网络字节顺序。您的上述代码为: p = struct.pack('!i', len(data)) clientsocket.send(p) 您需

我目前正致力于让python套接字向java套接字发送一个整数,这样java套接字就可以在这个步骤之后读取表示字符串的字节数组

我尝试在结构中发送int,但在java端返回了一个大数字

p = struct.pack('i', len(data))
clientsocket.send(p)

查看7.3.2.1。通过网络发送任何数据时,始终将其转换为网络字节顺序。您的上述代码为:

p = struct.pack('!i', len(data))
clientsocket.send(p)

您需要查看不同的序列化库,例如msgpack允许您以统一的方式发送数据,以便所有语言都能理解数据。可能字节顺序错误。。。我猜你在英特尔平台上工作。那就是小恩迪安。互联网和Java虚拟机标准是Big-Endian。因此,可能所有字节的顺序都不对(4-3-2-1 python的istead可能发送1-2-3-4)。也许这就是问题所在。顺便说一句,我对python一无所知;-)我个人根本不使用序列化,只考虑将原始数据发送到套接字。在Java中,您使用原始输入/输出流和DataInput/OutputStream来执行此操作。谢谢各位,原来是字节顺序不正确。杰伊,你能不能把它作为一个答案,这样我就可以把它标记为解决方案了?哦,威廉,我一定要看看msgpack。谢谢你的建议!