Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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套接字超时。TimeoutError:[WinError 10060]_Python_Python 3.x_Sockets_Networking_Python Sockets - Fatal编程技术网

其他计算机上的Python套接字超时。TimeoutError:[WinError 10060]

其他计算机上的Python套接字超时。TimeoutError:[WinError 10060],python,python-3.x,sockets,networking,python-sockets,Python,Python 3.x,Sockets,Networking,Python Sockets,我正在尝试通过python套接字将客户机连接到服务器。客户端在我的计算机上成功连接,但其他网络上的用户无法连接 TimeoutError:[WinError 10060] 连接失败后,在客户端。下面是我的python脚本的代码 Server.py import socket serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = "0.0.0.0" port = 8000 print (host) print

我正在尝试通过python套接字将客户机连接到服务器。客户端在我的计算机上成功连接,但其他网络上的用户无法连接

TimeoutError:[WinError 10060]
连接失败后,在客户端。下面是我的python脚本的代码

Server.py

import socket
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = "0.0.0.0"
port = 8000
print (host)
print (port)
serversocket.bind((host, port))
Client.py

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = "##.###.###.###" # server's public ip.
port = 8001
s.connect((host,port))
print("Connected to server.")
s.send(("Client connected").encode())
端口是不同的,因为我不能连接没有本地和外部端口在我的路由器上是不同的;本地存在
8000
和外部存在
8001
。如果客户端在我的计算机上,服务器会显示它正在通过公共ip连接,因此它正在通过我的路由器

在我的服务器计算机上执行
nmap-p8000-sN-p0192.168.0.#
显示该端口使用http-alt关闭。在我的公共ip上执行该操作显示它是打开的,使用vcom隧道进行过滤,但它是打开的,几乎在每个端口上都进行过滤

我尝试过的:

  • 本地_端口=8000和远程_端口=8001的端口转发。外部ip设置为我的公共ip,本地ip设置为我的计算机ip;192.168.0#
  • 在服务器端路由器上使用DMZ主机(公开主机)
  • 在服务器端路由器上分别启用和禁用UPNP、WAN阻塞、Ipsec直通和PPTP直通
  • 允许通过服务器端防火墙在本地和远程上使用TCP端口
    8000
  • 允许程序通过客户端和服务器上的公用和专用网络上的防火墙
  • 允许通过客户端防火墙在本地和远程上使用TCP端口
    8001
  • 将客户端ip绑定到client.py上的socket.bind((客户端ip,端口))

它可能是我正在使用的与
http-alt
/
vcom-tunnel
有关的端口,而不是与upnp有关的端口。

问题是将我端口上的外部ip设置为我的公共ip。它设置的ip是什么,它只是扫描我的ip,这使得只有我的计算机能够连接到它。我将外部ip设置为
0.0.0.0
,使端口对所有ip开放