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()
24.if __name__ == '__main__':
25. main()
注意点:绑定端口要在发送数据之前进行绑定。