TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据。相对TCP,UDP则是面向无连接的协议。
使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发数据包。但是,能不能到达就不知道了。
虽然用UDP传输数据不可靠,但它的优点是和TCP比,速度快,对于不要求可靠到达的数据,就可以使用UDP协议。
导入socket包
import socket
要想使用需要先创建套接字对象,
其中socket.AF_INET 表示IPV4协议
socket.SOCK_DGRAM 表示UDP协议
# 创建套接字socket_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定端口socket_udp.bind((socket.gethostname(), 9999))
recvfrom 从缓冲区读一个字节的数据,我们设置1024就好。
也可以根据发送的大小设置接收的大小
socket_date, socket_port = socket_udp.recvfrom(1024)
print("来自{}:的消息 \n 内容是:{} \n ".format(socket_port, socket_date.decode("utf-8")))
以下是源代码,明天接着发UDP发送的
import socket
def main(): # 创建套接字 socket_udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定端口 socket_udp.bind((socket.gethostname(), 9999))
# 接收数据 while True: socket_date, socket_port = socket_udp.recvfrom(1024) print("来自{}:的消息 \n 内容是:{} \n ".format(socket_port, socket_date.decode("utf-8")))
# 关闭连接 socket_udp.close()
if __name__ == "__main__": main()