📜  Multi-Messenger:一个Python项目,通过终端消息传递(1)

📅  最后修改于: 2023-12-03 15:33:00.505000             🧑  作者: Mango

Multi-Messenger:一个Python项目,通过终端消息传递

Multi-Messenger是一个用Python编写的开源工具,允许用户通过终端交互式会话发送和接收消息。这个项目的灵感来自于多个聊天应用程序和IM工具,例如Telegram、WhatsApp和Skype等。Multi-Messenger允许用户选择他们想要的方法,以便他们可以像使用常规的聊天应用程序一样交换消息。该项目使用Python的Socket API来实现网络通信,使用Pickle来传递消息对象。

功能

Multi-Messenger允许用户执行以下功能:

  1. 发送文本消息
  2. 发送图像和视频消息
  3. 发送语音消息
  4. 查看在线用户列表
  5. 将消息发送至特定用户
  6. 通过命令行查看历史消息记录
系统要求

Multi-Messenger使用Python编写,因此,用户必须安装Python。使用该程序需要在两台计算机之间建立一个TCP连接。

安装
  1. 下载并解压源代码
  2. 使用命令行进入Multi-Messenger源代码的根目录
  3. 运行以下命令以安装所需的依赖项:
pip install -r requirements.txt
使用方法
  1. 启动服务器
python server.py
  1. 启动客户端
python client.py
  1. 输入您的用户名并按Enter键
  2. 开始聊天!
代码片段

以下是Multi-Messenger的核心功能之一:向特定用户发送消息的代码片段。

# 获取消息接收者的用户名
recipient = input('Enter username of recipient: ')

# 创建包含`sender`,`recipient`,`content`和`time`的字典
message = {
    'sender': self.username, 
    'recipient': recipient, 
    'content': content, 
    'time': datetime.now().strftime('%Y-%m-%d %H:%M:%S')
}

# 将消息对象打包为pickle并将其发送到接收者
message_data = pickle.dumps(message)
socket.sendto(message_data, (host, port))

以上代码创建一个字典,其中包含发送者和接收者的用户名,消息内容和时间戳。然后,它将字典对象转换为pickle对象并将其通过套接字发送给接收者。消息接收者通过其自己的Multi-Messenger客户端接收消息。