栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python如何实现客户端的请求并执行

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python如何实现客户端的请求并执行

客户端向服务端发送请求,服务端接收到请求后根据请求类型执行不同的操作.

在Python中可以利用并导入socket与json包实现。

​#导包
import socket
import json as js

​

没有的话可以使用pip install 安装

或者在pycharm中直接安装

首先我们需要绑定服务端的IP地址与端口号

IP地址需要绑定自己的本机IP地址

# 声明IP地址以及端口号
ip = '10.11.81.177'
port = 8899
# tcp通信协议
listen_socket = socket.socket(AF_INET, SOCK_STREAM)
# 绑定IP地址以及端口号并接收信息
listen_socket.bind((ip, port))
listen_socket.listen()
# 注:此处为服务端

然后客户端需要连接服务端的IP地址与端口

IP = '10.11.81.177'
PORT = 8899
data_socket = socket.socket()
data_socket.connect((IP, PORT))
# 注:此处为客户端

接着我们需要自定义请求

列如我们需要服务端输出‘人生苦短,我用Python’

# 客户端
# 自定义一个请求类型为输出字符的请求
# ask为字典类型
ask = {"type": 'Print'}
# ask_js是使用dumps转化为的json类型
ask_js = js.dumps(ask)
# 使用send发送请求且需要编码
data_socket.send(ask_js.encode())

客户端发送请求后,服务端则需要接收请求并执行

# 注:此处为服务端
# 监听客户端连接
data_socket, addr = listen_socket.accept()
# 接收客户端的请求
recv = data_socket.recv(1024)
# 将请求解码
recv_info = recv.decode()
# 将请求转换为字典
recv_dict = js.loads(recv_info)
# 获得请求类型
ask_type = recv_dict['type']
# 判断请求类型并执行操作
if ask_type == 'Print':
    print('人生苦短,我用Python')
else:
    print('未接收到正确请求')

先运行服务端再运行客户端得到的结果是服务端成功执行了输出字符串

如果需要自定义输出内容,可以在发送请求时携带数据

import socket
import json as js
IP = '10.11.81.177'
PORT = 8899
data_socket = socket.socket()
data_socket.connect((IP, PORT))
# 注:此处为客户端

# 自定义一个请求类型为输出字符的请求
data = input('输入字符串:')
# ask为字典类型
ask = {"type": 'Print', "Data": data}
# ask_js是使用dumps转化为的json类型
ask_js = js.dumps(ask)
# 使用send发送请求且需要编码
data_socket.send(ask_js.encode())
#---------------上为客户端,下为服务端----------------
import socket
import json as js

# 声明IP地址以及端口号
ip = '10.11.81.177'
port = 8899
# tcp通信协议
listen_socket = socket.socket()
# 绑定IP地址以及端口号并接收信息
listen_socket.bind((ip, port))
listen_socket.listen()
# 注:此处为服务端
# 监听客户端连接
data_socket, addr = listen_socket.accept()
# 接收客户端的请求
recv = data_socket.recv(1024)
# 将请求解码
recv_info = recv.decode()
# 将请求转换为字典
recv_dict = js.loads(recv_info)
# 获得请求类型
ask_type = recv_dict['type']
# 判断请求类型并执行操作
if ask_type == 'Print':
    data = recv_dict['Data']
    print('输出字符串:'+data)
else:
    print('未接收到正确请求')

运行效果为下图所示:

第一次写博客,写的可能不太好,望见谅

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/915953.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号