(Python)通过n发送结构化数据包

2024-05-14 21:47:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想建立一个聊天应用程序,支持短信,群组消息,文件传输(如netmeeting)。当我通过TCP套接字发送数据时,我发现数据不是结构化的,所有的数据都是以字符串形式通过TCP发送的。我想以一种结构化的方式发送它,包括几个标题,如name:、ip:、data:、data_type_flag:(文件或文本消息)等。。。一个stackoverflow的成员告诉我使用心灵感应,但我无法得到一个简单的教程来理解。如何通过套接字发送结构化数据?或者谁能给我一个很好的指导来正确地实现心灵感应。我想通过网络作为点对点通信,而不是专用服务器。。谢谢


Tags: 数据字符串name应用程序消息标题data方式
3条回答

TCP是一种transport layer协议,与应用层相反。这意味着TCP不负责您发送的数据的类型,只负责原始位。HTTP具有头和其他元数据,因为它是应用程序级的。在

对于您正在讨论的项目,您将希望实现自己的应用层协议,但这并不是一项简单的任务。我将查看httplib module中的python源代码,以了解如何实现这样的协议,但请注意,这可能与您想要的有很大不同,因为您希望持久套接字连接成为对等聊天协议(如您所描述的协议)中的一级公民。在

另一个选择是使用各种RPC库之一,例如xmlrpclib,它将为您处理大量所需的低级网络事务(尽管不是文件传输;还有其他库,如ftplib可以做到这一点)。在

在发送数据之前先对其进行Pickle处理,然后在另一端取消Pickle? http://docs.python.org/library/pickle.html

尝试google protcol buffers或{a2}。关于如何使用它们,有很多例子。在

至于您对“点对点”的评论,请注意,即使在对等网络中,也有一个对等点始终充当服务器(有时两者都是)。在

相关问题 更多 >

    热门问题