Python实现socket——udp的传输与接收

udp的传输与接收

windows网络调试助手下载:https://pan.baidu.com/s/1IwBWeAzGUO1A3sCWl20ssQ
提取码:68gr

一.基本用法

1.创建套接字

udp_socket = socket.socket(socket.AF_INET,cosket.SOCK_DGRAM)
localaddr = ("",port)
udp_socket.bind(localaddr)

2.使用套接字收发数据

udp_socket.sendto("xxxx").encode("utf-8"),("ip",port)
udp_socket.recvfrom(1024)

3.关闭套接字

udp_socket.close()

二.发送数据流程

1.创建套接字
2.发送数据
3.关闭

import socket
def main():
    # 创建一个套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    while True:
        # 从键盘获取数据
        send_data = input("请输入要发送的数据:")
        # 退出函数
        if send_data == "exit":
            break
        # 可以使用套接字收发数据,此时未绑定发送的端口号,系统每次会随机分配一个
        # udp_socket.sendto("hahaha",对方的IP和port)
        # udp_socket.sendto(b"lalala123",("172.17.3.97",8080))
        udp_socket.sendto(send_data.encode("gbk"),("172.17.3.97",8080)) #由于接收是在Windows上,而Windows中默认编码为gbk

    # 关闭套接字
    udp_socket.close()
if __name__ == '__main__':
    main()

Python实现socket——udp的传输与接收_第1张图片
Python实现socket——udp的传输与接收_第2张图片
Python实现socket——udp的传输与接收_第3张图片
Python实现socket——udp的传输与接收_第4张图片

三.接收数据流程

1.创建套接字
2.绑定本地信息(ip和port)
3.接收数据
4.关闭

import socket
def main():
    # 1创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 2.绑定一个本地信息
    localaddr = ("",7788) # 必须绑定自己电脑IP和port
    udp_socket.bind(localaddr)
    # 3.接收数据
    while True:
        recv_data = udp_socket.recvfrom(1024)
        # recv_data存储元组(接收到的数据,(发送方的ip,port))
        recv_msg = recv_data[0] # 信息内容
        send_addr = recv_data[1] # 信息地址
        # 4.打印接收到的数据
        # print(recv_data)
        print("信息来自:%s 内容是:%s" %(str(send_addr),recv_msg.decode("gbk")))
    # 5.退出套接字
    udp_socket.close()
if __name__ == "__main__":
    main()

运行此程序
Python实现socket——udp的传输与接收_第5张图片
在网络调试助手中发送消息
发送三次“你好”
Python实现socket——udp的传输与接收_第6张图片
发送三次“hello”
Python实现socket——udp的传输与接收_第7张图片

回到pycharm查看信息
Python实现socket——udp的传输与接收_第8张图片

你可能感兴趣的:(Python实现socket——udp的传输与接收)