zoukankan      html  css  js  c++  java
  • python_网络编程socket(UDP)

    服务端:

    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)  #创建基于UDP协议的socket对象
    sk.bind(('127.0.0.1',8099))     #把地址绑定到套接字
    
    msg,addr = sk.recvfrom(1024)   #接收数据和数据的地址(数据大小)
    print(msg.decode('utf-8'))  #打印
    sk.sendto(b'wdc',addr)   #发送数据和接收的数据的地址
    
    sk.close()  #关闭连接

    客户都:

    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)   #创建基于UDP协议的socket对象
    ip_port = ('127.0.0.1',8099)    #将地址和端口号放在一共元组里面
    
    sk.sendto(b'yhf',ip_port)   #发送数据和地址
    ret,addr = sk.recvfrom(1024)    #接收数据和数据的地址(数据大小)
    print(ret.decode('utf-8'))
    sk.close()  #关闭连接
    • UDP的server不需要进行监听也不需要建立连接
    • 在启动服务之后只能被动的等待客户都发送信息过来
    • 客户都发送消息的同时还会,自带地址信息
    • 消息回复的时候,不仅需要发送消息,还需要把自己的地址填写上

    实例:多客户端通信

      服务端:

    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    sk.bind(('127.0.0.1',8099))
    
    while True:
        msg,addr = sk.recvfrom(1024)
        print(msg.decode('utf-8'))
        info = input('>>>')
        info = ('来自服务器的消息:{}'.format(info)).encode('utf-8')
        sk.sendto(info,addr)
    
    sk.close()

      客户端1:

    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    
    ip_port = ('127.0.0.1',8099)
    
    while True:
        info = input('大哥:')
        info = ('来自大哥的消息:{}'.format(info)).encode('utf-8')
        sk.sendto(info,ip_port)
        msg,addr = sk.recvfrom(1024)
        print(msg.decode('utf-8'))
    
    sk.close()

      客户端2:

    import socket
    sk = socket.socket(type=socket.SOCK_DGRAM)
    
    ip_port = ('127.0.0.1',8099)
    
    while True:
        info = input('二哥:')
        info = ('来自二哥的消息:{}'.format(info)).encode('utf-8')
        sk.sendto(info, ip_port)
        msg,addr = sk.recvfrom(1024)
        print(msg.decode('utf-8'))
    
    sk.close()
  • 相关阅读:
    ubuntu linux切换用户到root
    passwd命令
    如何根据驱动程序及其安装文件来访问该设备[转]
    CMMI的5个级别和25个过程域
    Linux操作系统启动过程
    VMWare上网三种工作模式
    卷积的意义【转】
    Linux内核模块动态添加方法
    Linux内核编译的过程
    mysql存入中文乱码解决方法(windows环境)
  • 原文地址:https://www.cnblogs.com/wangdianchao/p/11694949.html
Copyright © 2011-2022 走看看