Skip to main content
 首页 » 编程设计

python之简单的服务器/客户端字符串交换协议(protocol)

2025年05月04日21zengkefu

我正在寻找一种抽象而简洁的方式来在两个 Python 程序之间交换字符串。该协议(protocol)非常简单:客户端/服务器向服务器/客户端发送一个字符串,它采取相应的操作——我想是通过一个处理程序——然后用另一个字符串回复或不回复另一端。字符串可以是三件事:一种确认,表明另一方还活着;一个包含命令的 pickled 类,如果从“客户端”到“服务器”,或者一个响应,如果从“服务器”到“客户端”;最后是一个“锁定”命令,它向对话的一方发出信号,表明另一方正在工作,并且在收到另一个锁定数据包之前不应询问进一步的问题。

我一直在看python内置的SocketServer.TCPServer,但是太低级了,不支持重连,客户端必须使用socket接口(interface),我更喜欢封装。
然后我探索了扭曲的框架,特别是 LineOnlyReceiver 协议(protocol)和服务器示例,但我发现最初的学习曲线太陡峭,在线文档假设知识太多并且普遍缺乏示例和良好的文档(除了 2005 O 'reilly book,这仍然有效吗?)。
然后我尝试了 pyliblo 库,它非常适合这项任务,可惜它是单向的,无法“回答”客户,我需要将答案与特定命令相关联。

所以我的问题是:是否有一个现有的框架/库/模块允许我在服务器中有一个客户端对象,从中读取命令并向其发送回复,在客户端中有一个服务器对象,以读取来自和发送命令的答复,我可以在一个简单的设置后使用(客户端,服务器地址是主机:端口,服务器,你正在监听端口 X)处理了底层套接字,重新连接引擎等?< br/> 提前感谢任何答案(请原谅我的英语和缺乏经验,这是我的第一个问题)

请您参考如下方法:

Python 还提供了一个 asyncchat模块简化了类似聊天的通信常见的服务器/客户端行为。