当前位置: 首页>>代码示例>>Python>>正文


Python User.getUserNameList方法代码示例

本文整理汇总了Python中User.getUserNameList方法的典型用法代码示例。如果您正苦于以下问题:Python User.getUserNameList方法的具体用法?Python User.getUserNameList怎么用?Python User.getUserNameList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在User的用法示例。


在下文中一共展示了User.getUserNameList方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: serverforever

# 需要导入模块: import User [as 别名]
# 或者: from User import getUserNameList [as 别名]
def serverforever():
    """
    功能:
        1.处理用户的登录验证以及新用户的注册
        2.对已经登录的用户开启服务
    变量:
        user --- 一个dict,key为登录验证成功的用户名,value为该用户名对应的socket连接
    """
    host, port = getAddr()
    global user
    user = {}
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((host, port))
    s.listen(10)
    while 1:
        con, addr = s.accept()
        """
        Login messages.
        """
        login = con.recv(1024).decode("utf-8")  # (name,pwd,register)
        info = eval(login)
        if len(info) == 2:
            # 用户登录
            userId = User.getUserId(info)
            if userId != -1:
                user[info[0]] = con  # 保存{'name':con}
                # 将用户的好友列表发送过去
                con.send(User.getUserNameList(info[0]).encode("utf-8"))
                print("用户 " + info[0] + " 上线!")
                threading.Thread(target=recv, args=(con, info[0])).start()  # 开始监听一个con连接

            else:
                print("用户 " + info[0] + " 试图上线,但是并不合法!")
                con.send(str([]).encode("utf-8"))
                con.close()
        elif len(info) == 3:
            # 用户注册
            res = register.create(info[0], info[1])
            con.send(str(res).encode("utf-8"))
            if res == 1:
                print("用户 " + info[0] + " 注册成功!")
            elif res == 0:
                print("用户 " + info[0] + " 注册失败!")
            elif res == -1:
                print("用户 " + info[0] + " 试图注册,但是其已经存在!")
开发者ID:ChenL1994,项目名称:TalkOnline,代码行数:47,代码来源:MyServer.py

示例2: recv

# 需要导入模块: import User [as 别名]
# 或者: from User import getUserNameList [as 别名]
def recv(con, name):
    """
    功能: 接收用户发来的数据,并对其进行相应的处理
    说明:
        info 为用户发送过来的字符串处理后生成的tuple,第一个参数name是用户名,第二个参数是一个dict对象,不同键值对应不同操作
        info 的第二个参数中key-value对中对应关系为
            'mess'-- 用户向好友发送消息,value为一个tuple,它的第一个参数为消息内容,第二个参数为信息的目的好友的name
            'add' -- 添加一个好友的请求,value为待添加好友的name
            'del' -- 删除一个好友的请求,value为待删除好友的name
            'find' -- 搜索用户,value为一个用户名的模糊信息
    """
    global user
    try:
        while 1:
            info = eval(
                con.recv(1024).decode("utf-8")
            )  # (name,{'mess':(message,user),'add':'user','del':'user','find':'user'})
            try:
                if "mess" in info[1] and info[1]["mess"][1] in user:
                    toUser = info[1]["mess"][1]
                    user[toUser].send(str((name, info[1]["mess"][0])).encode("utf-8"))
                elif "find" in info[1]:  # 搜索好友
                    res = str({"ulist": User.findUsers(info[1]["find"])})
                    con.send(res.encode("utf-8"))
                elif "add" in info[1]:
                    User.addUser(name, info[1]["add"])
                    con.send(str({"newUs": User.getUserNameList(name)}).encode("utf-8"))
                elif "del" in info[1]:
                    res = User.delFriend(name, info[1]["del"])
                    con.send(str({"del": res}).encode("utf-8"))
            except:
                print("解析异常!")
    except:
        print("用户 " + name + " 下线 !")
        con.close()
        user.pop(name)  # 弹出name
开发者ID:ChenL1994,项目名称:TalkOnline,代码行数:38,代码来源:MyServer.py


注:本文中的User.getUserNameList方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。