python套接字应用程序不能按照预期从终端运行
问题描述:
我正在购买一本名为'Black Hat Python'的书,但遇到了我无法解决的问题。python套接字应用程序不能按照预期从终端运行
本书迄今为止已经让读者创建了几个python应用程序:一个用于发送/接收数据的命令行工具,远程执行命令和一个通过指定主机/端口重定向连接的TCP代理客户端。
问题是,当我从终端启动它们时,我没有收到任何输出,终端用屏幕抓取类型游标等待我的输入。它等待着我'抢'一个图像或屏幕的一部分3次,然后失败。然后我将一些图像文件保存到名为'getopt','socket','subprocess','threading'和'sys'的Home文件夹中。我从终端获得被“截获”的屏幕3次后的输出是:
[email protected]:~# ./1proxy.py 127.0.0.1 21 ftpserver.ftp 21 True
./1proxy.py: line 5: syntax error near unexpected token `('
./1proxy.py: line 5: `def server_loop(local_host, local_port, remote_host, remote_port, receive_first):
然而,当我在IDE的客户端运行它,它运行正常,当我将它传递相同的参数。连接被启动并等待连接到远程主机。输出是正确的,然后和代理客户端等待通过本地主机连接端口21:
[*] Listening on 127.0.0.1:21
[==>] Receive incoming connection from 127.0.0.1:49475
有谁知道为什么发生这种情况?为什么我不能以相同的结果从终端执行此操作?
我传递的参数是:
./myproxy.py 127.0.0.1 21 ftpserver.ftp 21 True
127.0.0.1 = localhost
21 = local port
ftpserver.ftp = remote host
21 = remote port
True = receive first
答
可能发生的,因为你的shell试图通过你的脚本BASH执行。 BASH将在您的代码中看到很多错误。而不是输入./code.py
,您需要在脚本的开头运行python code.py
或添加#!/path/to/python
。
成功!非常感谢你! – rayd44 2015-02-08 20:17:21
同样,不要说'谢谢你',请考虑接受答案。谢谢。 – ForceBru 2015-02-09 06:30:18