# -*- coding:utf-8 -*-
import time
import json
import socket
sock = socket.socket()
sock.bind(("127.0.0.1", 6789)) # 绑定ip地址和端口
sock.listen(8) # 侦听
print("socket 服务端 开始工作...")
print("等待客户端连接...")
conn, addr = sock.accept() # 接受连接
print("客户端已经建立连接>>>")
while True:
rcvData = conn.recv(64 * 1024) # 接收数据
reqJsonDict = json.loads(rcvData.decode('utf-8'))
print("客户端请求数据:", reqJsonDict)
dataDict = {
"msg": "成功",
"data": {
"X": 100,
"Y": "OK",
},
"code": 0
}
jsonString = json.dumps(dataDict)
print("服务端返回数据:", jsonString)
conn.send(jsonString.encode('utf-8')) # 返回数据
time.sleep(5)
conn.close()
sock.close()
# -*- coding:utf-8 -*-
import time
import socket
import json
if __name__ == '__main__':
host = "127.0.0.1" # 服务端ip地址
port = 6789 # 侦听端口
sock = socket.socket() # 创建socket
sock.connect((host, port)) # 建立socket连接
while True:
dataDict = {
"msg": "请求",
"data": {
"A": 1,
"B": "String Information",
"C": 10.55
}
}
jsonString = json.dumps(dataDict) # json字符串
print("Socket客户端发送数据:", jsonString)
# 发送数据
sock.send(jsonString.encode('utf-8'))
# 接收数据
rcvData = sock.recv(100 * 1024)
retJsonDict = json.loads(rcvData.decode('utf-8'))
print("Socket客户端接收数据:", retJsonDict)
time.sleep(5)
sock.close()
服务端控制台输出日志:
socket 服务端 开始工作...
等待客户端连接...
客户端已经建立连接>>>
客户端请求数据: {'msg': '请求', 'data': {'A': 1, 'B': 'String Information', 'C': 10.55}}
服务端返回数据: {"msg": "\u6210\u529f", "data": {"X": 100, "Y": "OK"}, "code": 0}
客户端控制台输出日志:
Socket客户端发送数据: {"msg": "\u8bf7\u6c42", "data": {"A": 1, "B": "String Information", "C": 10.55}}
Socket客户端接收数据: {'msg': '成功', 'data': {'X': 100, 'Y': 'OK'}, 'code': 0}
"\u8bf7\u6c42"这是unicode编码数据,如果要完整显示中文
服务端修改代码如下:
原代码:
print("服务端返回数据:", jsonString)
修改后代码:
print("服务端返回数据:", jsonString.encode("utf-8").decode('unicode-escape')) #
客户端修改代码如下:
原代码:
print("Socket客户端发送数据:", jsonString)
修改后代码:
print("Socket客户端发送数据:", jsonString.encode("utf-8").decode('unicode-escape')) #
5、控制台显示
服务端控制台输出:
socket 服务端 开始工作...
等待客户端连接...
客户端已经建立连接>>>
客户端请求数据: {'msg': '请求', 'data': {'A': 1, 'B': 'String Information', 'C': 10.55}}
服务端返回数据: {"msg": "成功", "data": {"X": 100, "Y": "OK"}, "code": 0}
客户端请求数据: {'msg': '请求', 'data': {'A': 1, 'B': 'String Information', 'C': 10.55}}
服务端返回数据: {"msg": "成功", "data": {"X": 100, "Y": "OK"}, "code": 0}
客户端控制台输出:
Socket客户端发送数据: {"msg": "请求", "data": {"A": 1, "B": "String Information", "C": 10.55}}
Socket客户端接收数据: {'msg': '成功', 'data': {'X': 100, 'Y': 'OK'}, 'code': 0}
Socket客户端发送数据: {"msg": "请求", "data": {"A": 1, "B": "String Information", "C": 10.55}}
Socket客户端接收数据: {'msg': '成功', 'data': {'X': 100, 'Y': 'OK'}, 'code': 0}