python socket服务器,python socket实现文件传输
本文主要介绍Pythonsocket是如何实现服务器和客户端之间的数据传输(TCP)的,有很好的参考价值,希望对大家有所帮助。如有错误或不足之处,请不吝赐教。
目录
套接字服务器和客户端数据传输(TCP)套接字服务器,客户端相互通信。
socket服务端和客户端数据传输(TCP)
服务器端:
导入插座
#创建一个套接字对象
socket _ server=socket . socket(socket。AF_INET,socket。袜子_流)
主机=127.0.0.1
端口=9999
#绑定地址
socket_server.bind((主机,端口))
#设置监听
套接字_服务器.监听(5)
# socket_server.accept()返回一个元组,元素1是客户端的socket对象,元素2是客户端的地址(ip地址,端口号)。
client_socket,地址=socket_server.accept()
#while循环是为了让对话继续下去。
而True:
#接收客户的请求
recvmsg=client _ socket . recv(1024)
#解码接收的数据
strData=recvmsg.decode(utf-8 )
#设置退出条件
if strData==q:
破裂
打印(已收到: %s% strData )
#输入
Msg=input(发送3360 )
#要发送数据,需要编码。
client _ socket . send(msg . encode( utf-8 ))
#关闭服务器端
socket_server.close()
客户:
导入插座
#创建一个套接字对象
client=socket.socket(套接字。AF_INET,socket。袜子_流)
主机=127.0.0.1
端口=9999
#连接服务器
client.connect((主机,端口))
而True:
Send_msg=input(发送: )
#设置退出条件
if send_msg==q:
破裂
发送消息=发送消息
#发送数据、代码
client . send(send _ msg . encode( utf-8 ))
#接收服务器返回的数据
msg=client.recv(1024)
#解码
Print (Receive: %s ,% msg.decode(utf-8 ))
#关闭客户端
client.close()
流程图
socket服务端,客户端互相通信
使用socket传递参数,运行程序与客户端结合,先启动服务器,再启动客户端。基本代码如下:
服务结束代码
导入插座
导入时间
打印(“服务器已打开”)
#创建套接字
mySocket=socket.socket(socket。AF_INET,socket。袜子_流)
#设置IP和端口
#host=socket.gethostname()
主机=127.0.1.1
端口=3333
#bind绑定端口。
mySocket.bind((主机,端口))
#监视器
mySocket.listen(10)
而True:
#接收客户端连接
打印(等待连接.)
client,address=mySocket.accept()
打印(“新连接”)
打印( IP是%s %地址[0])
打印(端口是%dn %地址[1])
而True:
#发送消息
Msg=input(“服务器发送:”)
client . send(msg . encode(encoding= utf-8 ))
打印(“发送完成”)
print(time . strftime( % y-% m-% d % h :% m :% s ,time.localtime (time.time ())) #格式化的时间戳采用标准格式。
if msg==EOF:
破裂
if msg==quit:
client.close()
mySocket.close()
打印(“程序结束n”)
退出()
#阅读信息
msg=client.recv(1024)
Print(服务器接收: ,msg . Decode( utf-8 )#解码接收到的数据
打印(“阅读完成”)
if msg==bEOF:
破裂
if msg==bquit:
client.close()
mySocket.close()
打印(“程序结束n”)
退出()
客户代码:
导入插座
打印(“客户端开启”)
#创建套接字
mySocket=socket.socket(socket。AF_INET,socket。袜子_流)
#设置ip和端口
#host=socket.gethostname()
主机=127.0.1.1
端口=3333
尝试:
MySocket.connect((主机,端口))# #连接到服务器
打印(“连接到服务器”)
除了: ##连接失败,运行原ip。
打印(“连接失败”)
而1:
#接收消息
msg=mySocket.recv(1024)
print( Client receives:% s % msg . Decode( utf-8 ))#解码接收到的数据
打印(“阅读完成”)
if msg==bEOF:
破裂
if msg==bquit:
mySocket.close()
打印(“程序结束n”)
退出()
#发送消息
Msg=input(客户端发送: )
my socket . send(msg . encode(encoding= utf-8 ))
打印(“发送完成”)
if msg==EOF:
破裂
if msg==quit:
mySocket.close()
打印(“程序结束n”)
退出()
打印(“程序结束n”)
以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。