python socket收发json
时间: 2025-02-19 13:32:02 浏览: 19
使用Python Socket库发送和接收JSON数据
为了实现通过Socket库发送和接收JSON数据,在客户端和服务端都需要做相应的处理。服务端需监听来自客户端的消息并解析接收到的数据;而客户端则负责创建连接并向服务器发送消息。
创建服务端来接收JSON数据
服务端程序会建立一个套接字对象用于监听特定端口上的连接请求,并在接受到新连接后读取传入的信息。当从客户端接收到数据包时,这些二进制流会被转换成字符串形式再进一步解码为Python字典结构以便于后续操作[^3]。
import socket
import json
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = "localhost"
port = 12345
buffer_size = 1024
server_socket.bind((host, port))
server_socket.listen(5)
print(f"Listening on {host}:{port}")
conn, addr = server_socket.accept()
with conn:
print('Connected by', addr)
while True:
data = conn.recv(buffer_size).decode('utf-8')
if not data: break
received_json = json.loads(data) # 将json字符串转化为Python字典
print('Received:', received_json)
客户端向服务端发送JSON数据
对于客户端而言,其主要工作就是构建要传输的内容——这里是以JSON格式表示的对象或数组,并将其序列化为字符串之后编码为UTF-8字符集下的bytes类型传递给sendall()
方法完成实际的数据传送过程[^2]。
import socket
import json
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = "localhost"
port = 12345
data_to_send = {"key": "value", "number": 42}
json_data = json.dumps(data_to_send).encode('utf-8')
try:
client_socket.connect((host, port))
client_socket.sendall(json_data)
finally:
client_socket.close()
上述代码展示了怎样利用Python内置的socket
模块配合json
库来进行简单的基于TCP协议的网络通信,其中包含了如何打包以及拆封JSON格式的数据[^1]。
相关推荐


















