io操作-套接字函数/数据打包

Posted chenlulu1122

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了io操作-套接字函数/数据打包相关的知识,希望对你有一定的参考价值。

函数
【1】 sockfd.type 套接字类型

【2】 sockfd.family 套接字地址类型

【3】 sockfd.getsockname() 获取套接字绑定地址

【4】 sockfd.fileno() 获取套接字的文件描述符

【5】 confd.getpeername() 获取连接套接字客户端地址


## struct模块进行数据打包
struct模块作用:将一组 简单数据 进行打包,转换为bytes格式发送。或者将一组bytes格式数据,进行解析
复杂数据:可以用json模块或者str()/eval()配合使用
import json #把字典转换成字符串
dict1={‘a‘:1,"b":[1,2]}
a=json.dumps(dict1)
b=json.loads(a)
print(b)#<class ‘dict‘> {‘a‘: 1, ‘b‘: [1, 2]}

 

把所有语言转为c语言类型:
i 整型
f 浮点型
s 字节(必须字节才能打包,不是字节先转换)


import struct

t = struct.Struct(‘4sif‘)
a = t.pack(‘chen‘.encode(), 40, 1.25)
b = t.unpack(a)
print(b) #(b‘chen‘, 40, 1.25)

 

或者

import struct

a = struct.pack(‘4sif‘, ‘chen‘.encode(), 40, 1.25)
b = struct.unpack(‘4sif‘, a)
print(b)

以上是关于io操作-套接字函数/数据打包的主要内容,如果未能解决你的问题,请参考以下文章

Overlapped Model

第14章——高级IO函数

在windows系统中对套接字数据进行io时为啥不可以直接使用文件io相关函数?

如何重用 socket.io 发射功能?试图将套接字发射功能附加到 SwiftUI 按钮(操作)?

网络编程

windows下的IO模型之选择(select)模型