【问题标题】:Python - can't connect client with server (on Windows 2012 R2) using socket modulePython - 无法使用套接字模块将客户端与服务器(在 Windows 2012 R2 上)连接
【发布时间】:2019-01-10 08:45:33
【问题描述】:

我正在尝试使用套接字模块创建简单的客户端-服务器应用程序,如果我使用“localhost”作为主机它运行良好,但是当我尝试在我的计算机和远程 Windows Server 之间建立连接时2012 R2 客户端无法连接到服务器。这是我的脚本:

服务器

import socket
HOST = '172.22.5.223' # Windows Server IP
PORT = 9999
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind((HOST, PORT))
server_socket.listen(10)
print("Listening")
s = server_socket.accept()
print("Connected")

客户

import socket
HOST = '172.22.5.223'
PORT = 9999
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
    sock.connect((HOST, PORT))
except Exception as e:
    print("Cannot connect to the server:", e)
print("Connected")

错误:[WinError 10060]连接尝试失败,因为连接方一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应

【问题讨论】:

  • 您遇到什么异常?可能是防火墙阻止了你?请提供您打印出来的例外情况。
  • 另外,您确定IP地址吗?我刚刚测试了您的代码(用于两台机器之间的客户端-服务器连接)并且它可以正常工作。不过我有 Windows 7。
  • @shadowsheep,我添加了错误消息。 Ping 到服务器工作正常。而且我在 Windows Server 上运行了 MySQL 服务器,我可以使用 mysqlconnector 连接到它。
  • @Joey Mallone,服务器 IP 正常(使用 ipconfig 检查,并且使用相同 IP 连接到 MySQL 工作正常),不需要客户端 IP。
  • 好的,我将尝试禁用 windows 防火墙以快速检查,如果它有效,则添加防火墙规则以允许连接。

标签: python-3.x windows-server-2012-r2


【解决方案1】:

解决方法是在 Windows Server 防火墙中添加规则,允许服务器脚本连接到域网络。

【讨论】:

    猜你喜欢
    • 2023-01-30
    • 1970-01-01
    • 2023-01-03
    • 2016-12-09
    • 2013-12-05
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多