搭建服务,接收json data,写一个客户端和一个服务端
时间: 2024-04-30 17:24:14 浏览: 13
服务端代码:
```
import socket
import json
HOST = '127.0.0.1'
PORT = 8888
def handle_request(request):
try:
data = json.loads(request)
# 在这里处理客户端发送的数据
# 可以根据数据的内容执行相应的操作
# 这里只是简单地将数据打印出来
print(data)
return json.dumps({'success': True})
except ValueError:
return json.dumps({'success': False, 'error': 'Invalid JSON'})
def start_server():
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
server_socket.listen(1)
print('Listening on port %s ...' % PORT)
while True:
client_socket, address = server_socket.accept()
print('Accepted connection from %s:%s' % address)
request = client_socket.recv(1024).decode()
response = handle_request(request)
client_socket.send(response.encode())
client_socket.close()
if __name__ == '__main__':
start_server()
```
客户端代码:
```
import socket
import json
HOST = '127.0.0.1'
PORT = 8888
def send_request(data):
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((HOST, PORT))
request = json.dumps(data)
client_socket.send(request.encode())
response = client_socket.recv(1024).decode()
response_data = json.loads(response)
if response_data.get('success'):
print('Request succeeded')
else:
print('Request failed: %s' % response_data.get('error'))
client_socket.close()
if __name__ == '__main__':
data = {'name': 'John', 'age': 30}
send_request(data)
```
运行服务端代码后,运行客户端代码,就可以向服务端发送数据了。服务端会将接收到的数据打印出来,并返回一个成功或失败的消息给客户端。