udp客户端
import socket
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 端口绑定,默认本地ip
udp_socket.bind(("", 9090))
udp_socket.sendto("hello".encode("utf8"), ('192.168.238.1', 8080))
recv_data, address = udp_socket.recvfrom(1024)
"""
error
ignore 忽视报错
strict 严格模式
"""
print(recv_data.decode(encoding='gbk', errors='ignore'))
udp_socket.close()
udp服务端
import socket
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_socket.bind(("", 9090))
recv_data, recv_address = udp_socket.recvfrom(1024)
print(recv_data.decode('gbk'))
udp_socket.close()
广播
"""
广播地址用于同时向网络中所有工作站发送的一个地址
在使用TCP/IP协议的网络中,主机标识段host ID为全1的ip地址(255.255.255.255)就是广播地址
即向255.255.255.255发送消息就是广播消息
"""
import socket
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 设置广播权限,默认不允许发送广播
# 当前套接字 广播属性
udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True)
udp_socket.sendto("哈哈哈".encode("gbk"), ("192.168.238.255", 8080))
udp_socket.close()