• python_udp_多人聊天室_简单版


    udp-一定是client端先发送数据。

    server.py
    import socket
    friend_lst = {'alex':'32','太白':'33'}
    sk =socket.socket(type=socket.SOCK_DGRAM)
    sk.bind(('127.0.0.1',9001))
    while True:
        msg,addr = sk.recvfrom(1500)
        msg = msg.decode('utf-8')
        name,message  = msg.split('|',1)
        print('33[1;%sm %s:%s33[0m'%(friend_lst.get(name,'30'),name,message))
        content = input('>>>')
        sk.sendto(content.encode('utf-8'),addr)
    
    
    # 补充知识:
    # 1-字典的 dic.get(k,default_v)=v 方法: 如果k在字典中存在就返回它对应的v,如果不存在就返回一个设置的默认的default_v
    # 2-print的字符串的颜色:EVA的微博
    
    client_1.py
    import socket
    name = '太白'
    # name = '大壮'
    sk = socket.socket(type=socket.SOCK_DGRAM)
    
    while True:
        content = input('>>>')
        if content.upper() == 'Q':
            break
        content = '%s|%s'%(name,content)
        sk.sendto(content.encode('utf-8'),('127.0.0.1',9001))
        msg = sk.recv(1024).decode('utf-8')
        if msg.upper() == 'Q':
            break
        print(msg)
    
    
    client_2.py
    import socket
    name = 'alex'
    sk = socket.socket(type=socket.SOCK_DGRAM)
    
    while True:
        content = input('>>>')
        if content.upper() == 'Q': break
        content = '%s|%s'%(name,content)
        sk.sendto(content.encode('utf-8'),('127.0.0.1',9001))
        msg = sk.recv(1024).decode('utf-8')
        if msg.upper() == 'Q': break
        print(msg)
    
  • 相关阅读:
    2015.4.16-C#中ref和out的区别
    2015.4.10-SQL 高级查询(二)
    2015.4.10-C#入门基础(三)
    2015.4.8-C#入门基础(二)
    2015.4.7-C#入门基础(一)
    2015.4.2-SQL 简单语句(一)
    对GridView的某一列行进行操作。。
    jquery获取GridView中RadioButton选中的数据
    Ajax获取前台的数据
    前台验证
  • 原文地址:https://www.cnblogs.com/Collin-pxy/p/13034269.html
Copyright © 2020-2023  润新知