#!关于通过TCP传输JSON数据的问题,我将从基础概念到实际应用进行全面解析:
一、基础概念
二、技术实现方案
三、示例代码(Python实现) 服务端:
import socket
import json
import struct
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 8888))
server_socket.listen(5)
while True:
client_socket, addr = server_socket.accept()
# 读取长度前缀
raw_len = client_socket.recv(4)
if not raw_len:
break
msg_len = struct.unpack('>I', raw_len)[0]
# 读取实际数据
data = client_socket.recv(msg_len)
json_data = json.loads(data.decode('utf-8'))
print("Received:", json_data)
client_socket.close()
客户端:
import socket
import json
import struct
data = {"name": "Alice", "age": 25, "scores": [90, 85, 95]}
json_str = json.dumps(data)
json_bytes = json_str.encode('utf-8')
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 8888))
# 先发送长度前缀
client_socket.send(struct.pack('>I', len(json_bytes)))
# 再发送实际数据
client_socket.send(json_bytes)
client_socket.close()
四、常见问题及解决方案
五、应用场景
六、优化建议
这种方案结合了TCP的可靠性和JSON的灵活性,适合大多数需要结构化数据传输的场景。实际应用中可根据具体需求进行调整和优化。
没有搜到相关的文章