0

我正在尝试执行一个简单的套接字通信脚本,并且在尝试使用命令提示符运行脚本时遇到了一些困难。我正在使用带有 Python 2.7.5 AMD 64 的 Windows 7 64 位。

当我使用 IDLE 执行它时,该脚本工作正常,但是当使用命令提示符时,它只是坐在那里摆弄它的拇指。

这是我用来尝试解决问题的代码:

from socket import *

print "Hello World"
tcp_ip = '192.168.1.241'
tcp_port = 2001    
buffer_size = 11
plc_socket = socket(AF_INET, SOCK_STREAM)
plc_socket.bind((tcp_ip, tcp_port))        
plc_socket.listen(1)       
socket_conn, socket_addr = plc_socket.accept()
print "Connection Accepted"
socket_conn.shutdown(1)             
plc_socket.close()

当我使用命令行运行代码时,我确实得到了“Hello World”,它会在 SOCKET_CONN、SOCKET_ADDR 行之前执行所有操作,然后就坐在那里。

我已经做了以下事情:

  1. 设置我的windows路径信息指向Python安装目录。
  2. 卸载了我机器上的任何其他 Python 版本。
  3. 在其他机器(相同版本)上尝试了脚本以查看它是否有效。(确实如此)
  4. 验证我正在从命令行运行正确版本的 Python。
  5. 困惑地搔了搔头。

任何关于此事的智慧将不胜感激。

4

1 回答 1

0

问题已解决。

事实证明,当脚本通过命令行运行或直接执行时,本地网络防火墙阻止了 TCP/IP 连接。

我关闭了防火墙,脚本运行良好。

于 2013-10-10T22:16:46.293 回答