gpt4 book ai didi

Python 套接字在其他计算机上超时。超时错误 : [WinError 10060]

转载 作者:行者123 更新时间:2023-12-03 12:02:44 36 4
gpt4 key购买 nike

我正在尝试通过 python 套接字将客户端连接到服务器。客户端在我的电脑上连接成功,但其他网络上的人无法连接。
TimeoutError: [WinError 10060]连接失败后在客户端。这是我的 python 脚本的代码。

服务器.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))

客户端.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 .如果客户端在我的计算机上,则服务器显示它正在通过公共(public) ip 连接,因此它正在通过我的路由器。

nmap -p 8000 -sN -P0 192.168.0.#在我的服务器计算机上,显示端口已使用 http-alt 关闭。在我的公共(public) IP 上执行此操作表明它已使用 vcom-tunnel 打开|过滤,但几乎在每个端口上都已打开|过滤。

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

  • 这可能是我使用的端口与 http-alt 有关/ vcom-tunnel , 而不是一个带有 upnp 的。

    最佳答案

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

    关于Python 套接字在其他计算机上超时。超时错误 : [WinError 10060],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61823268/

    36 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com