Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法通过Python套接字连接到另一台电脑_Python_Sockets_Ubuntu 14.04 - Fatal编程技术网

无法通过Python套接字连接到另一台电脑

无法通过Python套接字连接到另一台电脑,python,sockets,ubuntu-14.04,Python,Sockets,Ubuntu 14.04,我正在尝试通过Internet在客户端和服务器之间进行通信,两者都是用Python编写的。我有服务器的下一个代码: def handle_client(clnt): while True: data = clnt.recv(1024) if data: print data, del data sock = socket.socket() sock.bind(('0.0.0.0', 12345)) sock.lis

我正在尝试通过Internet在客户端和服务器之间进行通信,两者都是用Python编写的。我有服务器的下一个代码:

def handle_client(clnt):
    while True:
        data = clnt.recv(1024)
        if data:
            print data,
        del data

sock = socket.socket()
sock.bind(('0.0.0.0', 12345))
sock.listen(5)

while True:
    client,addr = sock.accept()
    print "[*] Accepted connection from: %s:%d" % (addr[0],addr[1])
    # spin up our client thread to handle incoming data
    client_handler = threading.Thread(target=handle_client,args=(client,))
    client_handler.start()


client.close()
对于客户:

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('my public IP-address', 12345))
sock.send('Some plain text')
使用localhost时,它工作正常。在我将它加载到我的Ubuntu-14.04服务器(它不在同一个本地网络中)后,客户端不想连接。输出为:

socket.error: [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
我已经为服务器防火墙创建了规则,以管理员身份运行服务器和客户端,禁用了客户端防病毒,检查了Internet连接,相互ping,但似乎仍然无法正常工作,一次又一次地抛出相同的错误(如果服务器未启动,则会显示相同的错误)


有什么问题或如何解决这个问题的想法吗?

您的网络设置是什么?你能成功访问Ubuntu box上的其他服务吗?服务器直接连接到我的互联网提供商网络,客户端通过路由器。两者都有静态IP和相同的提供程序。是的,我可以。提供商封锁某些端口范围或做其他有趣的事情并非未知。尝试在端口12345上运行类似apache的东西,看看是否有效?另外,您是否尝试绑定到实际正确的接口IP,而不是使用
0.0.0
?忘了再说一件事:此服务器是我的Proxmox venv上的一个VM。但是当我创建它(VM)时,我直接连接了它。Proxmox可从外部世界获得。是的,我试过了。你的网络设置是什么?你能成功访问Ubuntu box上的其他服务吗?服务器直接连接到我的互联网提供商网络,客户端通过路由器。两者都有静态IP和相同的提供程序。是的,我可以。提供商封锁某些端口范围或做其他有趣的事情并非未知。尝试在端口12345上运行类似apache的东西,看看是否有效?另外,您是否尝试绑定到实际正确的接口IP,而不是使用
0.0.0
?忘了再说一件事:此服务器是我的Proxmox venv上的一个VM。但是当我创建它(VM)时,我直接连接了它。Proxmox可从外部世界获得。是的,我试过了。