python-socket-udp编程

本文通过一个简单的实例介绍了如何使用Python实现UDP服务端与客户端之间的通信。包括创建UDP连接、收发数据包等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 建立一个UDP服务端

#================================================================

#udpserver.py

import socket   #python内部模块,直接导入

#socket(family[,type[,proto]]])  创建一个scoket对象

#family定义IP协议,分为IPv4,IPv6.

#socket.AF_INET IPv4 

#socket.AF_INET6 IPv6

#type SOCK_DGRAM UDP   SOCK_STREAM TCP
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)   #创建一个IPv4,UDP链接对象
#bind(('IP',端口),),如果IP是空字符,那么表示本机任何可用IP,端口自定义,但不要和其他在用或应用程序默认端口重复
s.bind(('127.0.0.1',5000))   #127.0.0.1表示本机IP,定义服务端接收信息的端口是5000

while True:

 #recvfrom接收一个参数,该参数是定义了每次收到的最大字节数;

#recvfrom返回两个元素,第一个元素收到的信息(字符串),第二个元素含有两个字符串(或元素)的元组,分别是发送者的IP,发送者的端口号

data,addr = s.recvfrom(1024) 
print('received message:{0}'.format(data.decode()))    #收到的消息需要decode解码
print('The message is from PORT{0},IP{1}.'.format(addr[1],addr[0]))
if data.decode().lower()=='quit':
break

s.close()

#=================================================================

2.UDP client客户端

#=================================================================

#UDPclient.py
import socket


def UdpClient():
Host = '127.0.0.1'
Port = 5000
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

#input用户自定义消息
str1 = input('Input some messages:\n')

#sendto(string,(IP,PORT))    string是要发送的信息,IP是目标(server)的IP,PORT目标端口,上面我定义的是5000
s.sendto(str1.encode(),(Host,Port))   #str1.encode()编码后发送,接收端需要decode
s.close()
return str1

while True:
str1 = UdpClient()
if str1 =='quit':
break

#==========================================================

3.运行udpserver.py,再运行UDPclient.py


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值