【Python考试题】-网络编程
1.UDP 总结
使用 udp 发送/接收数据步骤:
1.创建客户端套接字
2.发送/接收数据
3.关闭套接字
1.import socket
2.def main():
3. # 1、创建 udp 套接字
4. # socket.AF_INET 表示 IPv4 协议 AF_INET6 表示 IPv6 协议
5. # socket.SOCK_DGRAM 数据报套接字,只要用于 udp 协议
6. udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
7.
8. # 2、准备接收方的地址
9. # 元组类型 ip 是字符串类型 端口号是整型
10. dest_addr = ('192.168.113.111', 8888)
11. # 要发送的数据
12. send_data = "我是要发送的数据" 13. # 3、发送数据
14. udp_socket.sendto(send_data.encode("utf-8"), dest_addr)
15. # 4、等待接收方发送的数据 如果没有收到数据则会阻塞等待,直到收到数据
16. # 接收到的数据是一个元组 (接收到的数据, 发送方的 ip 和端口)
17. # 1024 表示本次接收的最大字节数
18. recv_data, addr = udp_socket.recvfrom(1024) 19. # 5、关闭套接字
20. udp_socket.close()
21.if name == ' main ':
22. main()
编码的转换
str -->bytes: encode 编码 bytes--> str: decode()解码
UDP 绑定端口号:
1.创建 socket 套接字
2.绑定端口号
3.接收/发送数据
4.关闭套接字
1.import socket 2.def main(): |
|||
3. 4. |
|
# 1、创建 udp 套接字 # socket.AF_INET 表示 IPv4 协议 AF_INET6 表示 IPv6 协议 |
|
5. |
|
# |
socket.SOCK_DGRAM 数据报套接字,只要用于 udp 协议 |
6. 7. 8. 9. 10 |
. |
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 2、绑定端口 # 元组类型 ip 一般不写 表示本机的任何的一个 ip local_addr = ('', 7777) udp_socket.bind(local_addr) |
|
11. # 3、准备接收方的地址 12. # 元组类型 ip 是字符串类型 端口号是整型 13. 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 ':