Python怎样进行服务端和客户端的数据传输
Admin 2022-08-31 群英技术资讯 1221 次浏览
这篇文章主要讲解了“Python怎样进行服务端和客户端的数据传输”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。服务器端:
import socket
#创建一个socket对象
socket_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = "127.0.0.1"
port = 9999
#绑定地址
socket_server.bind((host, port))
#设置监听
socket_server.listen(5)
# socket_server.accept()返回一个元组, 元素1为客户端的socket对象, 元素2为客户端的地址(ip地址,端口号)
client_socket, address = socket_server.accept()
#while循环是为了让对话持续
while True:
#接收客户端的请求
recvmsg = client_socket.recv(1024)
#把接收到的数据进行解码
strData = recvmsg.decode("utf-8")
#设置退出条件
if strData == 'q':
break
print("接收: %s" % strData)
#输入
msg = input("发送: ")
#发送数据,需要进行编码
client_socket.send(msg.encode("utf-8"))
#关闭服务器端
socket_server.close()
客户端:
import socket
#创建一个socket对象
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = "127.0.0.1"
port = 9999
#连接服务端
client.connect((host, port))
while True:
send_msg = input("发送: ")
#设置退出条件
if send_msg == "q":
break
send_msg = send_msg
#发送数据,编码
client.send(send_msg.encode("utf-8"))
#接收服务端返回的数据
msg = client.recv(1024)
#解码
print("接收:%s", % msg.decode("utf-8"))
#关闭客户端
client.close()
流程图

利用socket传递参数,把运行的程序与客户端结合,先启动服务端,再启动客户端。基础代码如下:
服务端代码
import socket
import time
print("服务端开启")
#创建套接字
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#设置IP和端口
#host = socket.gethostname()
host = '127.0.1.1'
port = 3333
#bind绑定该端口
mySocket.bind((host, port))
#监听
mySocket.listen(10)
while True:
#接收客户端连接
print("等待连接....")
client, address = mySocket.accept()
print("新连接")
print("IP is %s" % address[0])
print("port is %d\n" % address[1])
while True:
#发送消息
msg = input("服务端发送:")
client.send(msg.encode(encoding='utf-8'))
print("发送完成")
print (time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))#格式化时间戳为标准格式
if msg == "EOF":
break
if msg == "quit":
client.close()
mySocket.close()
print("程序结束\n")
exit()
#读取消息
msg = client.recv(1024)
print("服务端接收:",msg.decode("utf-8"))#把接收到的数据进行解码
print("读取完成")
if msg == b"EOF":
break
if msg == b"quit":
client.close()
mySocket.close()
print("程序结束\n")
exit()
客户端代码:
import socket
print("客户端开启")
#创建套接字
mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#设置ip和端口
#host = socket.gethostname()
host = '127.0.1.1'
port = 3333
try:
mySocket.connect((host, port)) ##连接到服务器
print("连接到服务器")
except : ##连接不成功,运行最初的ip
print ('连接不成功')
while 1:
#接收消息
msg = mySocket.recv(1024)
print("客户端接收:%s" % msg.decode("utf-8"))#把接收到的数据进行解码
print("读取完成")
if msg == b"EOF":
break
if msg == b"quit":
mySocket.close()
print("程序结束\n")
exit()
#发送消息
msg = input("客户端发送:")
mySocket.send(msg.encode(encoding='utf-8'))
print("发送完成")
if msg == "EOF":
break
if msg == "quit":
mySocket.close()
print("程序结束\n")
exit()
print("程序结束\n")
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家介绍了python 虚拟环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>
struct模块执行Python值和以Python bytes表示的C结构体之间的转换,这可以用于处理存储在文件中或来自网络连接以及其他源的二进制数据,下面介绍下Python使用struct库的用法,感兴趣的朋友一起看看吧
在日常的python编程中使用这几个函数来简化我们的编程工作,经常使用能使编程效率大大地提高。本文为大家总结了六个Python编程最受用的内置函数,感兴趣的可以了解一下
Flask 是 Python 中有名的轻量级同步 web 框架,在一些开发中,可能会遇到需要长时间处理的任务,此时就需要使用异步的方式来实现,让长时间任务在后台运行,先将本次请求的响应状态返回给前端,不让前端界面「卡顿」,当异步任务处理好后,如果需要返回状态,再将状态返回。
本文将给大家介绍一个第三方库-Tenacity(标题中的重试机制并并不准确,它不是 Python 的内置模块,因此并不能称之为机制),它实现了几乎我们可以使用到的所有重试场景,快跟随小编一起学习一下吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008