【发布时间】:2016-12-28 01:51:15
【问题描述】:
我在同一个 LAN 上有 2 台计算机。第一台 PC 的 IP 地址为 192.168.178.30,另一台 PC 的 IP 地址为 192.168.178.26。 Ping、traceroute、telnet、ssh,两台电脑之间一切正常。两台 PC 运行相同的操作系统 - CentOS 7,并且两台 PC 具有相同的 python 版本 2.7.5(使用 python -V 命令检查)。
我从一本计算机网络书籍中复制了简单的 Python 代码。
client.py
from socket import *
serverName = '192.168.178.30'
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_STREAM)
clientSocket.connect((serverName,serverPort))
sentence = raw_input('Input lowercase sentence: ')
clientSocket.send(sentence)
modifiedSentence = clientSocket.recv(1024)
print 'From Server:', modifiedSentence
clientSocket.close()
server.py
from socket import *
serverPort = 12000
serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind(('192.168.178.30',serverPort))
serverSocket.listen(5)
print 'The server is ready to receive'
while 1:
connectionSocket, addr = serverSocket.accept()
sentence = connectionSocket.recv(1024)
capitalizedSentence = sentence.upper()
connectionSocket.send(capitalizedSentence)
connectionSocket.close()
代码在同一台 PC 上运行时有效(服务器在 localhost 上侦听)。 当我在一台 PC 上运行客户端代码并在另一台 PC 上运行服务器代码时,我在客户端收到此错误。
Traceback (most recent call last):
File "client.py", line 5, in <module>
clientSocket.connect((serverName,serverPort))
File "/usr/lib64/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 113] No route to host
有人可以帮忙吗?
【问题讨论】:
-
您能否将两台机器的网络配置(
ip addr)添加到您的问题中?这似乎更像是一个网络问题,而不是 Python API 的问题。
标签: python python-2.7 sockets