Python执行顺序

时间:2011-07-19 13:43:57

标签: python multithreading macos execution

我已经淘汰了一个网络协议,并且有一个python脚本充当网络服务的客户端。它完美无缺,看起来大致如下:

create TCP socket (default - blocking)
send data
recv data
..
..
send data
recv data
close socket

但是,我想修改它以便循环遍历一个列表 - 基本上在python脚本中它将循环遍历目前已经完美运行的代码:

for item in list:
  create TCP socket (default - blocking)
  send data
  recv data
  ...
  ...
  send data
  recv data
  close socket

但它失败了 - 在第二个send()之后我从另一侧获得了TCP重置,尽管数据包捕获完全相同。也就是说,如果我运行非循环脚本两次它可以工作,但迭代版本没有。

我怀疑是否有一些python / OSX(Snow Leopard)魔法线程正在发生,这可能导致变量发生变化(可能是GCD ??)。我是Python的新手,所以也许有一些超级明显的东西,我在阅读中错过了。

最后几点:

  • 套接字阻塞
  • 正在正确处理应用程序排序(基于数据包差异)

干杯 乔纳森

0 个答案:

没有答案