我已经淘汰了一个网络协议,并且有一个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的新手,所以也许有一些超级明显的东西,我在阅读中错过了。
最后几点:
干杯 乔纳森