python套接字应用程序无法正常工作从终端

时间:2015-02-08 19:27:21

标签: python linux sockets

我正在关注我购买的一本名为“Black Hat Python”的书,但遇到了一个我似乎无法解决的问题。

到目前为止,本书已经让读者创建了一些python应用程序:一个用于发送/接收数据的命令行工具,远程执行命令以及一个通过指定主机/端口重定向连接的TCP代理客户端。

问题是,当我从终端启动这些时,我没有收到任何输出,终端等待我的输入使用屏幕抓取类型光标。等待我“抓住”图像或部分屏幕3次然后失败。然后我将一些图像文件保存到我的主文件夹,名为'getopt','socket','subprocess','threading'和'sys'。在“抓住”屏幕3次后从终端获得的输出是:

root@c0ff33:~# ./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上的localhost等待连接:

[*] 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

1 个答案:

答案 0 :(得分:0)

这可能发生,因为你的shell试图将你的脚本传递给BASH来执行。 BASH会在您的代码中看到很多错误。您无需输入./code.py,而是需要在脚本的开头运行python code.py或添加#!/path/to/python