文档章节

浅析Python中的struct模块

疯子张
 疯子张
发布于 2014/10/29 11:24
字数 334
阅读 125
收藏 6

最近在学习python网络编程这一块,在写简单的socket通信代码时,遇到了struct这个模块的使用,当时不太清楚这到底有和作用,后来查阅了相关资料大概了解了,在这里做一下简单的总结。


了解c语言的人,一定会知道struct结构体在c语言中的作用,它定义了一种结构,里面包含不同类型的数据(int,char,bool等等),方便对某一结构对象进行处理。而在网络通信当中,大多传递的数据是以二进制流(binary data)存在的。当传递字符串时,不必担心太多的问题,而当传递诸如int、char之类的基本数据的时候,就需要有一种机制将某些特定的结构体类型打包成二进制流的字符串然后再网络传输,而接收端也应该可以通过某种机制进行解包还原出原始的结构体数据。python中的struct模块就提供了这样的机制,该模块的主要作用就是对python基本类型值与用python字符串格式表示的C struct类型间的转化(This module performs conversions between Python values and C structs represented as Python strings.)。

© 著作权归作者所有

疯子张
粉丝 5
博文 80
码字总数 20167
作品 0
海淀
私信 提问
Python内核源码解析与C/CPP-API拓展编程(一)PyObject

下载Python源码 我这里使用Python3.5作为学习的源码 目录结构 调试方法: 基于C++的调试对于已经到Python虚拟机中存储起来的字节码命令是无法被观察到的,我们只能把它们解析成AST才能看懂字...

Pulsar-V
04/08
41
0
关于C和Python之间通信的方法

这些天在做一个项目,前端使用python来作,便于快速开发,底层使用C来写,效率高,速度快。这样就牵扯到二者之间的通信问题。我查了相关文档,发现有以下几种解决方式: 使用标准的数据表示形...

长平狐
2012/09/20
837
0
python 常用内建模块之struct

python学习笔记,特做记录,分享给大家,希望对大家有所帮助。 struct 准确地讲,Python没有专门处理字节的数据类型。但由于b'str'可以表示字节,所以,字节数组=二进制str。而在C语言中,我...

展菲
07/26
0
0
SWIG入门4: C/C++初级特性2

1 structure 我看来,structure乃是封装之源。SWIG对于strucure的封装非常自然。自然的意思就是,C语言里怎么用PYTHON就怎么用。水里水里来,火里火里去。不过第一个问题就是,PYTHON作为面向...

costaxu
2012/08/18
1K
1
Python学习——struct模块的pack、unpack示例

import struct pack、unpack、pack_into、unpack_from 运行结果: [work@db-testing-com06-vm3.db01.baidu.com python]$ python struct_pack.py ===== pack - unpack ===== str: ? len(str......

长平狐
2013/01/06
581
0

没有更多内容

加载失败,请刷新页面

加载更多

JMM内存模型(一)&volatile关键字的可见性

在说这个之前,我想先说一下计算机的内存模型: CPU在执行的时候,肯定要有数据,而数据在内存中放着呢,这里的内存就是计算机的物理内存,刚开始还好,但是随着技术的发展,CPU处理的速度越...

走向人生巅峰的大路
29分钟前
78
0
你对AJAX认知有多少(2)?

接着昨日内容,我们几天继续探讨ajax的相关知识点 提到ajax下面几个问题又是必须要了解的啦~~~ 8、在浏览器端如何得到服务器端响应的XML数据。 通过XMLHttpRequest对象的responseXMl属性 9、 ...

理性思考
39分钟前
4
0
正则表达式基础(一)

1.转义 转义的作用: 当某个字符在表达式中具有特殊含义,例如字符串引号中出现了引号,为了可以使用这些字符本身,而不是使用其在表达式中的特殊含义,则需要通过转义符“\”来构建该字符转...

清自以敬
42分钟前
4
0
idea中@Data标签getset不起作用

背景:换电脑以后在idea中有@data注解都不生效 解决办法:idea装个插件 https://blog.csdn.net/seapeak007/article/details/72911529...

栾小糖
47分钟前
5
0
Apache Kudu 不能删除不存在的数据

使用Apache Kudu客户端,对KafkaConnect Sink 进行扩展。 使用的Apache Kudu 的Java 客户端。突然有天发现作业无法提交,一直报错。 后来才发现这是Kudu自身的一种校验机制。为了忽略这种校验...

吐槽的达达仔
58分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部