我发现自己在使用Python的Socket Server示例。这将使您继续执行SendFrame()、ReceiveFrame()和DeliverData()例程。在
MakeFrame()和{}将根据需要来回发送的数据量而有很大的不同。我将努力挖掘一些我过去用过的好例子。在
如果您正在寻找一站式解决方案,我建议您研究一下Twisted。有一个明确的学习曲线,但它可能值得你这样做。请注意,如果您想使用pyInstaller或py2exe将Python代码打包到一个exe中,Twisted可能会根据我读过的许多线程给您带来麻烦。在
所以在回顾了我的笔记之后,框架方面对我来说是一个痛苦的主题,因为我找不到任何好的例子来帮助我。相反,我从头开始写了一个,并对它进行了修改。在
当你阅读套接字编程时,你肯定会发现仅仅因为你发送了所有的数据(socket.sendall()),并不意味着你会在第一个socket.recv()之后收到所有的数据。这个问题增加了这一信息框架的复杂性。由于缺乏在网络上的例子,下面我有一个精简版本,我现在正在使用的几个过程。在
更新
因此,在进一步测试under-heavy/burging之后,我不再使用正则表达式,而是逐个字符地处理流,这大大提高了它的性能。在
SendFrame(),ReceiveFrame(),ExtractData(),DeliverData()示例:MESSAGE_FRAME_START = '@'
MESSAGE_FRAME_END = '#'
def process_raw_socket_message_stream(raw_message_stream):