学习聊天服务器。谁能告诉我这里发生了什么?

时间:2016-03-06 19:46:47

标签: python

我一直在努力学习聊天服务器。我不知道这个代码块的作用。

def get_client_name(self, client):
    info = self.clientmap[client]
    host, name = info[0][0], info[1]
    return '@'.join((name, host))

有人能详细告诉我代码的功能吗?

1 个答案:

答案 0 :(得分:1)

self.clientmap似乎dict将某种客户端标识符(无法从此代码段中将其形式告知)转换为tuplelist保存有关连接到聊天服务器的特定客户端的详细信息。

根据完成的分配,info[0][0]表示客户端连接的远程主机,而info[1]是" name" - 可能是他们在连接聊天服务器时使用的登录名?我进一步猜测,info[0]最可能是用户所连接的(host, port)的2元组,但上面的代码不直接支持,但纯粹是受过教育的根据这种应用程序可能存储的内容进行猜测。

如果我的上述假设是正确的,get_client_name()的返回值是一个字符串,表示username@host形式的客户端。无法推测主机是存储为DNS名称还是IP地址,但除非代码特别努力进行反向解析,否则我会强烈怀疑IP地址。

这主要是假设,但它是我根据您提供的代码管理的最佳方式 - 要查看的代码的关键部分是{在何处以及如何{ {1}}词典已初始化。