在使用python向java发送数据的时候一般是需要记录数据长度的,数据长度应该是int类型:
s = socket.socket()
s.connect((host, port))
data = 'hello world'
s.sendall('%16s' % len(data)) #send data length
s.sendall(data) #send data
s.close()
但python 如何发送int类型?答案是使用struct。
Java expects the binary representation of your integer. You can use the struct
module to generate binary representations.
In your case, this would be:
import struct
s.sendall(struct.pack('>i', len(data)))
第一个参数'>i'分别表示使用big-endian和int类型。
Also make sure you use the correct byte order
. Java could be expecting network byte order.
详见:http://stackoverflow.com/questions/10228927/how-to-send-an-integer-over-a-socket-to-a-java-application-using-python
http://www.cnblogs.com/zhangjing0502/archive/2012/05/15/2501010.html
分享到:
相关推荐
在本项目"app_struct_pythonstruct_freeood_"中,主要关注的是如何使用`struct`库来处理IP地址的计算,特别是将一个整数值转化为IP地址。下面将详细解释`struct`库的基本用法以及在IP地址处理中的应用。 `struct`库...
Python的`struct`模块是处理二进制数据的强大工具,它允许我们将低级的字节序列转换为Python对象,反之亦然。这个`struct_helper_0_01`可能是一个帮助程序,旨在简化与C语言结构体之间的数据交互。在Python中,与...
《Python库struct-model-python-0.1.0详解》 在Python编程中,库是开发者的重要工具,它们提供了丰富的功能,使我们能够高效地完成各种任务。本文将深入探讨一个名为`struct-model-python-0.1.0`的库,它被封装在名...
资源分类:Python库 所属语言:Python 资源全名:jsonstruct-0.2a1.linux-x86_64.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:ypstruct-0.0.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
树莓派I2C通信,使用python的UPD网络远程控制树莓派i2c发送指令和读取数据指令,里面包含了3个i2c子设备
python提供了一个struct模块来提供转换。下面就介绍这个模块中的几个方法。 struct.pack(): struct.pack用于将Python的值根据格式符,转换为字符串(因为Python中没有字节(Byte)类型,可以把这里的字符串理解为...
# 改变结构体成员的字节对齐 ## 例子 #include typedef struct { char a; int b; } ST_A;
Python使用struct处理二进制的实例详解 有的时候需要用python处理二进制数据,比如,存取文件,socket操作时.这时候,可以使用python的struct模块来完成.可以用 struct来处理c语言中的结构体. struct模块中最...
使用struck.unpack获取子字符串 复制代码 代码如下:import struct print struct.unpack(format, ‘Test astring’) #(‘Test’, ‘ing’) 来个简单的例子吧,有一个字符串’He is not very happy’,处理一下,把...
这就是struct模块的作用,它提供了一种机制来打包(Packing)和解包(Unpacking)Python中的基本数据类型和二进制数据之间的转换。 在Python中,struct模块提供了一些简单的函数来完成这种转换。利用模块中的格式符...
而在C语言中,我们可以很方便地用struct、union来处理字节,以及字节和int,float的转换。 在Python中,比方说要把一个32位无符号整数变成字节,也就是4个长度的str,你得配合位运算符这么写: >>> n = 10240099 >>...
在Nim编程语言中,`struct.nim`模块提供了一种类似于Python的结构化数据处理方式,使得开发者能够方便地处理二进制数据流。这个模块对于那些需要处理底层数据结构,例如网络协议解析、文件格式读写或者系统编程的...
Python的`struct`模块提供了将这种整数与IP地址之间转换的功能。本教程将深入探讨如何使用`struct`库进行IP地址的计算。 首先,理解`struct`库的基本用法。`struct`库允许我们处理二进制数据,它提供了一种方式来...
Python的内建模块`struct`提供了在Python与C或其他低级语言之间进行数据类型转换的能力。这个模块的主要目的是处理字节序列,使Python程序能够理解其他语言中的原始数据格式。在Python中,由于其高级抽象的数据类型...
Python是一门非常简洁的语言,对于数据类型的表示,不像其他语言预定义了许多类型(如:在C#中,光整型就定义了8种),它只定义了六种基本类型:字符串... Python的标准模块struct就用来解决这个问题。 struct模块的内
### Python的Struct模块详解 #### 一、引言 Python作为一种高级编程语言,在处理数据时提供了高度抽象的数据结构。然而,在与其他系统或平台交互时,尤其是涉及到网络通信、文件读写等场景,需要将这些高级数据...
在Python中,struct模块是用于处理二进制数据的强大工具,它允许你将复杂的数据结构打包成二进制字符串,并在需要时将这些二进制字符串解包回原始数据。这对于与C语言程序交互或进行网络通信尤其有用。以下是如何在...