0

我正在使用基于长度的消息框架和 python 扭曲框架和运行 BeginRecieve 异步读取的 C# 客户端,我无法获取消息长度的值。

这是扭曲的python代码

self.transport.write(pack(self.structFormat, len(string)) + string)

这是 C# 代码:

int bytesRead = client.EndReceive(ar);

if (bytesRead > 0) { int msg_size = BitConverter.ToInt32(state.buffer, 0);

问题是当我通过 C# 端的 Bitconverter 抓取它时 len(string) 值不正确。该值应为 15,但它的值为 251658240。

任何见解将不胜感激。

4

1 回答 1

0

抱歉,这个问题问得不好。我确实找到了解决方案。

int netmsg_size = BitConverter.ToInt32(state.buffer, 0);

int msg_size = IPAddress.NetworkToHostOrder(netmsg_size);

这会将网络整数转换回常规整数。

于 2016-06-09T21:56:42.993 回答