介绍
这篇文章主要介绍python网络编程套接字如何实现服务端,客户端,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
本文内容:
- <李>
套接字介绍
李> <李> TCP:李>
- <李>
服务端
李> <李>客户端
李>UDP:
李>- <李>
服务端
李> <李>客户端
李>首发时间:2018-02-08 01:14
修改:
- <李>
2018-03-20:重置了布的局,增加了UDP
李>什么是套接字:
- <李>
插座又称“套接字”,应用程序通常通过“套接字”向网络发出请求或者应答网络请求。
李> <李>网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个插座。
李> <李>插座就像电话线插口,只有电话线插上了,才能通信。
李> <李>python中使用套接字来进行网络连接传输
TCP:
服务端:
TCP服务端一般需要下面几个操作:
import 插座 服务器=socket.socket() #建立插座 server.bind ((& # 39; localhost # 39;, 1234)) #绑定 server.listen() #监听 print(“开始等待…“) 康涅狄格州,addr=server.accept() #接收连接 print(“连接成功“) data=https://www.yisu.com/zixun/conn.recv(1024) #接收数据 print (data.decode ()) conn.send(数据)#发送数据 server.close() #关闭连接 打印(“- - - - - - - - - - - - - - - - - - - - - -”)
,
#服务器端 import 套接字 时间=server socket.socket () server.bind ((& # 39; localhost # 39;, 1234)), #绑定ip和端口 server.listen(5), #监听 while 真正的: 打印才能(“开始等待“) ,,康涅狄格州,addr =, server.accept () 打印才能(康涅狄格州,addr) 打印才能(“客户端连接“) while 才能正确的: ,,,data =, conn.recv (1024) ,,,印刷(“recv:“数据) ,,,if not 数据:,#当data=https://www.yisu.com/zixun/0时为真 打印(“连接断开…”) 打破 conn.send(数据) server.close ()
,
<强> 强>
如果要在windows中运行,需要捕获异常:
#服务器端 import 套接字 时间=server socket.socket () server.bind ((& # 39; localhost # 39;, 1234)), #绑定ip和端口 server.listen(5), #监听 while 真正的: 打印才能(“开始等待“) ,,康涅狄格州,addr =, server.accept () 打印才能(康涅狄格州,addr) 打印才能(“客户端连接“) while 才能正确的: ,,,试一试: ,,,,,data =, conn.recv (1024) ,,,,,印刷(“recv:“数据) ,,,,,if not 数据:,#当data=https://www.yisu.com/zixun/0时为真 打印(“连接断开…”) 打破 conn.send(数据) 除了ConnectionResetError e: 打印(e) 打破 server.close ()
,
客户端:
TCP客户端一般需要下面几个操作:
import 插座 客户=socket.socket() #建立插座 client.connect ((& # 39; localhost # 39;, 1234)) #连接 client.send(“你”好“.encode()) #发送数据 data=https://www.yisu.com/zixun/client.recv(1024) #接收数据 print (data.decode ()) client.close() #关闭连接
,
import 插座 客户=socket.socket () client.connect ((& # 39; localhost # 39;, 1234)) while 真正的: cmd=才能输入(““祝辞,) if 才能len (cmd)==0: ,才能继续 client.send才能(cmd.encode ()) cmd_res才能=client.recv (1024) 打印才能(cmd_res.decode ()) client.close ()
,
UDP:
服务端:
UDP服务端通常有以下几个操作:
import 插座 import 时间 服务器=socket.socket (socket.AF_INET socket.SOCK_DGRAM) server.bind ((“localhost", 1234)) start_time=time.time () while 真正的: 数据,才能addr=server.recvfrom (1024) 打印(数据(addr)才能 server.sendto才能(“hello" .encode (), addr) time . sleep才能(1) if 才能time.time () -start_time> 30: ,才能打破 server.close ()python网络编程套接字如何实现服务端,客户端