当前位置: 首页 > 知识库问答 >
问题:

尝试将套接字连接到不同网络中的服务器会引发WinError 10060

冀冯浩
2023-03-14

我试图建立一个套接字连接,因此我编码并尝试了server.py和client.py的示例代码:

服务器py:

import socket

port = 5674
ip = socket.gethostbyname(socket.gethostname())

s = socket.socket()
s.bind((ip, port))
s.listen(2)
print('Server is ready')

while True:
    client, address = s.accept()
    print('New connection to {}'.format(address))
    client.send('You are connected to the server!'.encode('utf-8'))

客户py:

import socket

ip = ''  # enter ip address of server
port = 5674

s = socket.socket()
s.connect((ip, port))

msg = s.recv(1024).decode('utf-8')
print(msg)

试着在一台机器上运行这个程序绝对可以。

在不同网络中的不同机器上运行时,客户端将显示以下错误消息。py:

回溯(最近一次调用):文件“D:/Python/01programs/SocketTest/client.py”,第7行,在s.connect((ip,端口))TimeoutError:[WinError 10060]中,详细说明了该文件的内容

-

这个套接字连接出了什么问题?我想说,似乎客户端无法找到服务器,因此无法连接。

哪部分出错了,如何修复?谢谢帮忙!

PS:我已经阅读了很多与这个问题相关的问题,但没有一个对我的情况有帮助。

共有1个答案

桂志诚
2023-03-14

如果你试图访问你的服务器不是从同一个主机,你不能。你需要运行服务器不是在本地主机模式,改变服务器ip绑定到"0.0.0.0",它应该工作。

 类似资料:
  • 我试图创建一个客户端-服务器井字游戏作为家庭作业。我正在设置服务器-监听器和连接在不同的函数中,而不是在主程序中。服务器套接字创建成功,但客户端连接失败,我认为这是导致seg故障的原因。 我已经查找了类似的问题,并尽可能地对代码进行了调整,比如为sizeof(cli_addr)设置一个变量,而不是直接将其传递给accept()。我不知道为什么它不起作用。 这是设置连接的函数 我在编译cli_大小类

  • 线程“main”java.net.ConnectException:连接超时:在java.net.dualStackplainsockeTimpl.Connect0(本机方法)在java.net.dualStackplainsockeTimpl.socketConnect(DualStackplainsockeTimpl.java:69)在java.net.abstractplainsockeTi

  • 首先我要感谢你花时间... 我在macbook中用C++创建了一个服务器套接字,在运行windows XP的不同机器中用Java创建了一个客户机/套接字。我已将端口指定为5000,但无法指定正确的主机,因此无法进行连接。当我在windows xp中使用WinSock2创建一个C++服务器/套接字时,当我使用本地主机时,连接是完美的...有什么想法吗??? 提前Thnx int main(int a

  • 我编写了一个简单的java套接字服务器。我可以使用java客户端连接到它。 但是,当我尝试将android设备连接到它时,它会给出以下错误: 代码如下: 这一行:似乎是罪魁祸首。 错误消息“java.net.socketexception:套接字失败:EACCES(权限被拒绝)” Android java.net.SocketException:套接字失败:EACCES(拒绝权限) Android

  • 我有一个连接到Mongo数据库的Spring启动应用程序。我创建了一个docker-compose文件。Spring启动应用程序有两个实例。第一个实例在8080和27017上运行,运行良好。现在第二个实例在8083和27018上运行。我可以通过Mongo GUI轻松连接到27017和27018。但是,当我为第二个实例运行docker-compose时,Spring启动会出现异常。 以下是我的doc