zoukankan      html  css  js  c++  java
  • 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:
  • 相关阅读:
    VS 格式化代码 Ctrl + K, Ctrl + F
    VS NuGet使用
    VS书签的应用
    ASP.Net简单的交互案例
    英文书也没有那么难,跟着例子做,挺有意思的
    .Net强类型视图
    .Net视图机制
    .Net MVC小尝试
    ASP.Net MVC默认目录结构
    .Net中常用的几种ActionResult
  • 原文地址:https://www.cnblogs.com/zyxnhr/p/12349154.html
Copyright © 2011-2022 走看看