首页 > 其他 > 详细

udp套接字收发数据

时间:2019-10-16 15:09:26      阅读:58      评论:0      收藏:0      [点我收藏+]

udp发送数据注意点:

 s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

1、初始化socket 两个参数   第一个 ip/1v4协议      第二个是tcp还是udp协议  

socket.SOCK_DGRAM----udp协议          socket.SOCK_STREAM-----tcp协议

2发送的数据为bytes类型,记得转型, ip+端口是tuple类型

udp_socket.sendto(send_data.encode("utf-8"), ("192.168.20.143", 8080))

循环发送udp数据信息:

def udpSend():
    # 创建套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 绑定端口,发送数据时会从绑定的端口发送,不会再生成随机端口
    udp_socket.bind(("", 8080))
    # 使用套接字进行数据传输
    while True:
        send_data = input("请输入传输的数据")
    # (内容,地址>元组)
        udp_socket.sendto(send_data.encode("utf-8"), ("ip地址", 8080))
        if send_data == "exit":
            break
    # 关闭套接字
    udp_socket.close()

总结:

步骤和之前调用模块差不多:1、初始化udp/tcp套接字  2、使用套接字收发数据  3、关闭套接字

 

udp接收数据:

def udpGet():
    """
    1、创建套接字
    2、绑定一个本地信息
    3、接收数据
    4、打印接收数据
    5、关闭套接字
    :return:None
    """
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    loacl_addr = ("",7878)
    s.bind(loacl_addr)
    while True:
        recv_data = s.recvfrom(1024)
        print(recv_data,tuple(recv_data))
        if recv_data[0].decode(gbk) == "exit":
            break
    s.close()

接收的数据为元祖类型  其中接收的data为bytes类型,需要decode(‘gbk‘)进行转码

 


 




udp套接字收发数据

原文:https://www.cnblogs.com/XXQQ123/p/11685168.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!