【发布时间】:2018-07-18 17:03:48
【问题描述】:
我正在使用 python twisted 对 tcp 客户端/服务器进行编码 为了替换 Java 或 C#。 我必须在连接的永久会话中根据 ANS(字母数字字符串)解析长度前缀字符串消息。
- 像这样:
- 消息格式:[字母数字字符串:4字节][消息数据]
- example-1 : 0004ABCD ==> ABCD
- example-2 : 0002AB0005HELLO ==> AB,HELLO
IntNProtocol、NetStringProtocol 都无法解决。
如果客户端从应用层发送一个 2kb 的消息,内核会按照 MSS(最大段大小)拆分消息数据,并拆分发送数据包。
在 TCP 发送/接收环境中,它经常这样引发:
- 示例:1000HELLO {尚未到达 995 字节数据}
所以它必须等待使用数组、队列接收备用数据...
在扭曲中,我不知道如何解析多个大消息。
有人帮我提供一些信息或网址吗?
class ClientProtocol(protocol.Protocol):
def dataReceived(self, data):
# how can I code to parse multiple large message?
# is there solution to read specific size for data ?
【问题讨论】:
标签: python parsing tcp twisted codec