• 037.Python的UDP语法



    UDP语法

    1 创建一个socket的UDP对象

    import socket
    
    #创建对象  socket.SOCK_DGRAM 代表UDP协议
    sk = socket.socket(type=socket.SOCK_DGRAM)
    print (sk)

    执行

    复制代码
    [root@node10 tcp]# python3 server.py
    <socket.socket fd=3, 
    family=AddressFamily.AF_INET,
    type=SocketKind.SOCK_DGRAM,
    proto=0,
    laddr=('0.0.0.0', 0)>
    复制代码

    2 创建UAP连接

    服务端

    复制代码
    import socket
    
    #创建对象  socket.SOCK_DGRAM 代表UDP协议
    sk = socket.socket(type=socket.SOCK_DGRAM)
    
    #在网络中注册该主机
    sk.bind ( ("127.0.0.1",9000) )
    
    #udp服务器,第一次启动时,一定是先接收数据,在发送数据
    msg,cli_addr = sk.recvfrom(1024)
    print (msg.decode("utf-8"))
    
    #关闭udp连接
    sk.close()
    复制代码

    客户端

    复制代码
    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    
    #sendto (要发送的消息,(IP地址,端口号))
    sendto ("Nice to meet you!".encode("utf-8"),("127.0.0.1",9000) )
    #关闭连接
    sk.close()
    复制代码

    先执行服务端

    [root@node10 tcp]# python3 server.py

    被阻塞,查看端口信息

    再执行客户端

    服务端收到消息

    [root@node10 tcp]# python3 server.py
    Nice to meet you!

    3 循环发消息

    服务端

    复制代码
    #服务端
    import socket
    
    #创建对象  socket.SOCK_DGRAM 代表UDP协议
    sk = socket.socket(type=socket.SOCK_DGRAM)
    
    #在网络中注册该主机
    sk.bind ( ("127.0.0.1",9000) )
    
    #udp服务器,第一次启动时,一定是先接收数据,在发送数据
    while True:
            msg,cli_addr = sk.recvfrom(1024)
            print (msg.decode("utf-8"))
            print (cli_addr)
    
    #关闭udp连接
    sk.close()
    复制代码

    客户端

    复制代码
    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    
    #sendto (要发送的消息,(IP地址,端口号))
    while True:
            message = input("Please input the value:")
            sk.sendto (message.encode("utf-8"),("127.0.0.1",9000) )
    #关闭连接
    sk.close()
    复制代码

    执行

    复制代码
    [root@node10 tcp]# python3 server.py
    Hello                                #服务端接收的消息
    ('127.0.0.1', 34236)                  #打印出客户端的地址端口
    Nice to meet you!
    ('127.0.0.1', 34236)
    [root@node10 tcp]# python3 client.py  #客户端发送消息
    Please input the value:Hello
    Please input the value:Nice to meet you!
    复制代码

    4 服务端同时发送消息给客户端

    服务端

    复制代码
    #服务端
    import socket
    
    #创建对象  socket.SOCK_DGRAM 代表UDP协议
    sk = socket.socket(type=socket.SOCK_DGRAM)
    
    #在网络中注册该主机
    sk.bind ( ("127.0.0.1",9000) )
    
    #udp服务器,第一次启动时,一定是先接收数据,在发送数据
    while True:
            msg,cli_addr = sk.recvfrom(1024)
            print (msg.decode("utf-8"))
            print (cli_addr)
            #发送消息
            message = input("Please input your vaule>>>:")
            sk.sendto(message.encode("utf-8"),cli_addr)
    #关闭udp连接
    sk.close()
    复制代码

    客户端

    复制代码
    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    
    #sendto (要发送的消息,(IP地址,端口号))
    while True:
            message = input("Please input the value:")
            sk.sendto (message.encode("utf-8"),("127.0.0.1",9000) )
            #接收数据
            msg,ser_addr = sk.recvfrom(1024)
            print (msg.decode("utf-8"))
    #关闭连接
    sk.close()
    复制代码

    执行

    复制代码
    [root@node10 tcp]# python3 server.py
    Hi      #服务端接收数据
    ('127.0.0.1', 41800)
    Please input your vaule>>>:Hi    #服务端发送的数据
    Nice to meet you!
    ('127.0.0.1', 41800)
    Please input your vaule>>>:Nice to meet you too!
    [root@node10 tcp]# python3 client.py
    Please input the value:Hi   #客户端发送数据
    Hi                           #客户端接收到的数据
    Please input the value:Nice to meet you!
    Nice to meet you too!
    Please input the value:
    复制代码
    学习记录,小白一枚
  • 相关阅读:
    python
    基于vue的npm发包
    div实现水平垂直居中
    element-ui中表格添加fixed定位列后 出现表格错位现象
    解决github经常无法访问的问题
    快排算法C语言实现
    ubuntu下qt运行时/usr/bin/ld: cannot find -lGL
    llinux装完qt 启动qtcreator报错
    LINUX权限-bash: ./startup.sh: Permission denied
    In short, don’t use a pointer to a string literal if you plan to alter the string.
  • 原文地址:https://www.cnblogs.com/wangsirde0428/p/14322642.html
Copyright © 2020-2023  润新知