udp是无链接的,启动服务之后可以直接接受消息不需要提前建立链接

 

UDP协议的通信优势:

       允许一个服务器同时和多个客户端通信,

TCP不行

 

服务端

import socket

sk = socket.socket(type=socket.SOCK_DGRAM)
sk.bind(('127.0.0.1', 8888))

while 1:
    # 接收

    msg_r, addr = sk.recvfrom(1024)
    str_msg = msg_r.decode('utf-8')
    if str_msg == 'q':
        continue
    else:
        # 用':'分割字符串一次 变成列表
        lis = str_msg.split(':', 1)
        # 姓名
        na = lis[0].strip()
        # 信息
        info = lis[1].strip()
        print('\033[1;37;40m' + na + ':\033[0m' + info)

    # 发送
    msg_s = input('我:')
    if msg_s != 'q':
        sk.sendto(msg_s.encode('utf-8'), addr)
    else:
        sk.sendto(msg_s.encode('utf-8'), addr)
        break


sk.close()

 

客户端

import socket
name = input('请输入你的姓名:\n')
sk = socket.socket(type=socket.SOCK_DGRAM)

while 1:
    # 发送
    msg_s = input('>>>')
    if msg_s != 'q':
        sk.sendto((name +':'+ msg_s).encode('utf-8'),('127.0.0.1',8888))
    else:
        sk.sendto((msg_s).encode('utf-8'),('127.0.0.1',8888))
        break

    # 接收
    msg_r,addr = sk.recvfrom(1024)
    if msg_r.decode('utf-8') == 'q':
        break
    else:
        print(msg_r.decode('utf-8'))

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-13
  • 2022-02-01
  • 2021-11-16
  • 2022-12-23
  • 2021-09-14
  • 2021-11-05
猜你喜欢
  • 2022-02-18
  • 2021-04-03
  • 2021-06-04
  • 2021-09-05
  • 2022-12-23
  • 2022-02-21
相关资源
相似解决方案