Python全系列 教程
3567个小节阅读:5929.9k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
UDP 不同于 TCP,不存在请求连接和受理过程,因此在某种意义上无法明确区分服务器端和客户端,只是因为其提供服务而称为服务器端。
如下服务端、客户端代码几乎一模一样,注意接收和发送端口对应,即可。
【示例】UDP实现多线程服务端
xxxxxxxxxx
#coding=utf-8
from socket import *
from threading import Thread
udp_socket=socket(AF_INET,SOCK_DGRAM)
#绑定接收信息端口
udp_socket.bind(('127.0.0.1',8989))
#不停接收
def recv_data():
while True:
redata = udp_socket.recvfrom(1024)
print(f'收到信息:{redata[0].decode("gbk")}, from {redata[1]}')
#不停发送
def send_data():
while True:
data=input('输入信息:')
addr=('127.0.0.1',8080)
udp_socket.sendto(data.encode('gbk'),addr)
if __name__=='__main__':
# 创建两个线程
t1=Thread(target=send_data)
t2=Thread(target=recv_data)
t2.start()
t1.start()
t1.join()
t2.join()
【示例】UDP实现多线程客户端
xxxxxxxxxx
#coding=utf-8
from socket import *
from threading import Thread
udp_socket=socket(AF_INET,SOCK_DGRAM)
#绑定接收信息端口
udp_socket.bind(('127.0.0.1',8080))
#不停接收
def recv_data():
while True:
redata = udp_socket.recvfrom(1024)
print(f'收到信息:{redata[0].decode("gbk")}, from {redata[1]}')
#不停发送
def send_data():
while True:
data=input('输入信息:')
addr=('127.0.0.1',8989)
udp_socket.sendto(data.encode('gbk'),addr)
if __name__=='__main__':
# 创建两个线程
t1=Thread(target=send_data)
t2=Thread(target=recv_data)
t2.start()
t1.start()
t1.join()
t2.join()