使用udp发送/接收数据步骤?

1.创建客户端套接字
2.发送/接收数据
3.关闭套接字

import socket
def main(): 
	# 1、创建udp套接字 
	# socket.AF_INET  表示IPv4协议  AF_INET6 表示IPv6协议 
	# socket.SOCK_DGRAM  数据报套接字,只要用于udp协议 
	udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
	# 2、准备接收方的地址 
	# 元组类型  ip是字符串类型   端口号是整型 
	dest_addr = ('10.10.10.10', 0000) 
	# 要发送的数据 
	send_data = "我是要发送的数据" 
	# 3、发送数据 
	udp_socket.sendto(send_data.encode("utf-8"), dest_addr) 
	# 4、等待接收方发送的数据  如果没有收到数据则会阻塞等待,直到收到数据 
	# 接收到的数据是一个元组   (接收到的数据, 发送方的ip和端口) 
	# 1024  表示本次接收的最大字节数 
	recv_data, addr = udp_socket.recvfrom(1024) 
	# 5、关闭套接字 
	udp_socket.close() 
if __name__ == '__main__': 
	main()

编码的转换
str -->bytes: encode编码
bytes–> str: decode()解码

UDP绑定端口号:
1.创建socket套接字
2.绑定端口号
3.接收/发送数据
4.关闭套接字

import socket 
def main(): 
	# 1、创建udp套接字 
	# socket.AF_INET  表示IPv4协议  AF_INET6 表示IPv6协议 
	# socket.SOCK_DGRAM  数据报套接字,只要用于udp协议 
	udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
	# 2、绑定端口 
	# 元组类型  ip一般不写 表示本机的任何的一个ip 
	local_addr = ('', 7777) 
	udp_socket.bind(local_addr) 
	# 3、准备接收方的地址 
	# 元组类型  ip是字符串类型   端口号是整型 
	dest_addr = ('192.168.113.111', 8888) 
	14# 要发送的数据 
	15.    send_data = "我是要发送的数据" 
	16# 4、发送数据 
	17.    udp_socket.sendto(send_data.encode("utf-8"), dest_addr) 
	18# 5、等待接收方发送的数据  如果没有收到数据则会阻塞等待,直到收到数据 
	19# 接收到的数据是一个元组   (接收到的数据, 发送方的ip和端口) 
	20# 1024  表示本次接收的最大字节数 
	21.    recv_data, addr = udp_socket.recvfrom(1024) 
	22# 6、关闭套接字 
	23.    udp_socket.close() 
	24if __name__ == '__main__': 
	25.    main() 

注意点:绑定端口要在发送数据之前进行绑定。

猜你喜欢

转载自blog.csdn.net/weixin_43192242/article/details/86617629
今日推荐