基于udp的套接字编程

一,简单明了了解udp套接字编程

客户端:

复制代码
 1 #Author : Kelvin
 2 #Date : 2019/1/30 11:07
 3 from socket import *
 4 ip_conf=("127.0.0.1",8888)
 5 buffer_content=1024
 6 udp_client=socket(AF_INET,SOCK_DGRAM) #数据报
 7 while True:
 8     udp_client.sendto(input("\033[1;32;0m回复:\033[0m").encode("utf8"),ip_conf)
 9     data,addr=udp_client.recvfrom(buffer_content)
10     print("\033[1;36;0m服务器:\033[0m%s"%data.decode("utf8"))
复制代码

服务器端:

复制代码
 1 #Author : Kelvin
 2 #Date : 2019/1/30 11:07
 3 from socket import *
 4 ip_conf=("127.0.0.1",8888)
 5 buffer_content=1024
 6 udp_server=socket(AF_INET,SOCK_DGRAM) #数据报
 7 udp_server.bind(ip_conf)
 8 while True:
 9     data,addr=udp_server.recvfrom(buffer_content)
10     print("\033[1;36;0m客户端:\033[0m%s"%data.decode("utf8"))
11     udp_server.sendto(input("\033[1;32;0m回复:\033[0m").encode("utf8"),addr)
复制代码

udp套接字优点在于 可以同时接收多个客户端请求并通信,而tcp同一时间只能与一个客户端通信(纯净tcp),只有结束当前通信后才能与其他客户端通信。

 

 

二,udp示例(时间服务器)

服务器端:

复制代码
 1 #Author : Kelvin
 2 #Date : 2019/1/30 11:07
 3 from socket import *
 4 import time
 5 ip_conf=("127.0.0.1",8888)
 6 buffer_content=1024
 7 udp_server=socket(AF_INET,SOCK_DGRAM) #数据报
 8 udp_server.bind(ip_conf)
 9 while True:
10     data,addr=udp_server.recvfrom(buffer_content)
11     data=data.decode("utf8")
12     if not data:
13         form="%Y-%m-%d %X"
14     else:
15         form=data
16     now_time=time.strftime(form)
17     udp_server.sendto(now_time.encode("utf8"),addr)
复制代码

客户端:

复制代码
 1 # Author : Kelvin
 2 # Date : 2019/1/30 11:07
 3 from socket import *
 4 
 5 ip_conf = ("127.0.0.1", 8888)
 6 buffer_content = 1024
 7 udp_client = socket(AF_INET, SOCK_DGRAM)  # 数据报
 8 print("""
 9 1:直接回车获取默认时间格式
10 2:使用%Y %m %d %X 任意排序组合
11 3:使用%Y %m %d %X 其中的任意个
12 """)
13 while True:
14     udp_client.sendto(input("\033[1;32;0m获取时间命令:\033[0m").encode("utf8"), ip_conf)
15     data, addr = udp_client.recvfrom(buffer_content)
16     print("\033[1;36;0m服务器时间:\033[0m%s" % data.decode("utf8"))
复制代码

运行结果:

posted @   佛祖让我来巡山  阅读(514)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~

佛祖让我来巡山博客站 - 创建于 2018-08-15

开发工程师个人站,内容主要是网站开发方面的技术文章,大部分来自学习或工作,部分来源于网络,希望对大家有所帮助。

Bootstrap中文网

点击右上角即可分享
微信分享提示