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()
  • 相关阅读:
    数组小练习
    数组
    利用数组进行排序
    继承练习
    黄金分割点
    百万富翁-循环练习
    SelectedIndexChanged事件, SelectedValueChanged事件和SelectionChangeCommitted事件的区别及应用——c#
    进制转换以及与字符串之间转换——c#
    文件中的类都不能进行设计,因此未能为该文件显示设计器
    winfrom自绘窗体边框——c#
  • 原文地址:https://www.cnblogs.com/wangdianchao/p/11694949.html
Copyright © 2011-2022 走看看