`
zengleo
  • 浏览: 19439 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

python的socket发送C结构体

阅读更多

公司因为测试需要,通过UDP发送C的一个结构体做测试。
这里用到的struct这个模块

结构体是这样的

typedef struct _vustr{
    DWORD dwStrHeader;
    DWORD dwDataLen;
    DWORD dwDevID;
    DWORD dwChnHLSD;
    int   nVUValue;
}VUSTR;



udp发送代码


#coding:gb2312

import socket
import os
import struct

dwStrHeader=33803
dwDataLen=12
dwDevID=452984837
dwChnHLSD=1
nVUValue=-80

s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
data=struct.pack('IIIIi',dwStrHeader,dwDataLen,dwDevID,dwChnHLSD,nVUValue)
s.sendto(data,('192.168.0.199',33333))
s.close()


打包:struct.pack('格式化的字符串',变量1,变量2.....)
解包:struct.upack(data)

DWORD 是一个unsigned int字段。所以是 I

Format C Type Python Notes
x pad byte no value
c char string of length 1
b signed char integer
B unsigned char integer
? _Bool bool (1)
h short integer
H unsigned short integer
i int integer
I unsigned int integer or long
l long integer
L unsigned long long
q long long long (2)
Q unsigned long long long (2)
f float float
d double float
s char[] string
p char[] string
P void * long
分享到:
评论
1 楼 ph4nut 2010-01-13  
很好,發送raw_socket數據也會用到這個函數.

相关推荐

    python:socket传输大文件示例

    在Python编程中,Socket是网络通信的基本模块,用于实现不同计算机之间的数据传输。本文将深入讲解如何使用Python的Socket库来传输大文件。文件传输在许多应用中都是必不可少的,例如分布式系统、文件共享和备份等。...

    python 和C语言数据结构解析于构建

    内容中给出了一段Python代码示例,该示例展示了如何使用`struct`模块对C语言中定义的`struct`数据类型进行打包和发送。 ##### C语言中的`struct`定义 首先,我们来看一下C语言中定义的`struct`类型: ```c typedef ...

    python 和C sokcket 通信

    Python和C语言之间的Socket通信是跨语言网络编程的一个常见应用场景。在互联网协议栈中,Socket是一种接口,允许程序通过网络发送和接收数据。本篇将深入探讨如何使用Python的socket库与C语言的socket API进行通信。...

    Python使用struct处理二进制的实例详解

    Python的`struct`模块是用来处理二进制数据的,它提供了与C语言结构体类似的转换功能,能够将Python对象编码为字节串,也可以将字节串解码为Python对象。这个模块对于需要处理底层数据格式,如读写文件、网络通信等...

    客户端服务器交互(struct结构).zip

    3. **`struct`结构**:在Python中,`struct`模块用于处理C风格的结构化数据,如定义在C语言中的结构体。`struct`允许我们将字节序列转换为Python对象,反之亦然。这对于跨进程或跨网络的数据交换特别有用。例如,当...

    linux下使用RAW SOCKET接收LLDP报文并解析LLDP报文

    RAW SOCKET允许我们捕获和发送任何协议的数据包,包括LLDP的以太网帧。为了创建一个RAW SOCKET,我们需要使用`socket`系统调用,指定`PF_PACKET`协议家族和`SOCK_RAW`类型。 接下来,我们来看`main.c`文件。这个...

    python SocketServer C++ 实现

    Python的SocketServer库为开发者提供了方便的服务器端编程接口,而C++作为底层系统编程的强大工具,也有其自身的socket接口。本文将深入探讨如何在C++中实现类似Python SocketServer的功能,并通过具体的测试代码来...

    Python-2.7.15 源码

    5. **类型系统**:Python的动态类型系统在源码中体现为多种对象类型,如整数、浮点数、字符串、列表、字典等,这些在`Objects`目录下都有对应的C结构体和操作函数。 6. **异常处理**:在`Python/ceval.c`中,你可以...

    socket防粘包

    1. **数据打包**:客户端可能在发送数据前先将其打包成符合服务器预期格式的结构,比如包含长度信息的结构体。 2. **异步读写**:Qt的信号槽机制使得客户端可以异步接收数据,一旦接收到完整的消息(通过长度检查...

    tcp socket

    - **套接字地址**:结构体`sockaddr_in`在C语言中表示IP地址和端口号,用于建立连接。 - **缓冲区管理**:客户端需要管理发送和接收的数据缓冲区大小,以适应不同量级的数据传输。 - **多线程/异步处理**:在并发...

    Python 标准库 中文版

    在数据表示方面,array模块提供了一种高效的数值数组实现,struct模块用于处理C语言风格的结构体。xdrlib模块支持外部数据表示(XDR),marshal模块和pickle模块都是序列化Python对象的工具。pprint模块和repr模块...

    python标准库,带标签

    struct模块提供了解析和构建C语言结构体数据的能力;pickle模块及其cPickle模块实现了Python对象的序列化和反序列化,使得对象可以在不同的Python程序间传输和持久化存储。 文件格式模块涉及了对各种文件格式的解析...

    python 标准库

    - struct模块提供了对Python值与C结构体之间的转换。 - xdrlib、marshal和pickle模块提供了不同类型的序列化和反序列化机制。 - base64、binhex、quopri和uu模块提供了数据编码解码功能。 - repr模块用于生成...

    socket通信模拟车站载人系统

    在实际操作中,这些C文件可能包含socket创建、地址结构体初始化、套接字绑定、监听、接受连接、发送和接收数据等关键函数的调用。例如,`bind()`用于将socket与IP地址和端口号绑定,`listen()`用于使服务器进入监听...

    Python标准库

    - struct模块:用于处理Python值与C结构体之间的转换。 - pickle模块:用于序列化和反序列化Python对象结构。 5. 文件格式:包括: - xmllib模块:用于解析XML文档。 - ConfigParser模块:用于处理配置文件。 ...

    python标准库-书籍,原版-高清可复制

    - struct模块:处理C语言结构体类型数据的接口。 - xdrlib模块:处理外部数据表示(XDR)格式的数据。 - marshal模块:用于序列化Python对象,现已不推荐使用。 - pickle和cPickle模块:提供对象序列化和反序列化的...

    python标准库.pdf

    - struct模块:用于处理C语言风格的结构体。 - xdrlib模块:用于处理外部数据表示(XDR)格式的数据。 - marshal模块:用于将Python对象进行序列化和反序列化。 - pickle模块:提供序列化和反序列化对象的功能,...

    基于C++ 使用 UDP Socket 实现可靠文件传送(构建简单的文件传输协议)【100013164】

    4. **设置目的地地址**:使用`sockaddr_in`结构体定义远程主机的IP地址和端口号。 5. **发送数据**:使用`sendto()`函数将数据发送到指定的远程主机。由于UDP是无连接的,所以每次发送都需要指定目的地。 6. **...

    2021全国大学生电子设计大赛F题(2辆车(C语言编写)+2个K210程序(Python编写)).zip

    5. **网络通信**:Python的socket库可用于实现设备间的网络通信,例如WiFi或蓝牙连接。 6. **文件系统**:K210可能支持简单的文件系统,Python可以用来读写文件,存储和加载数据。 7. **数据分析与可视化**:尽管...

Global site tag (gtag.js) - Google Analytics