Python-urllib+;基本服务器可以';在macos上无法连接
我有两个文件,client.py和server.py: client.py server.py 这两个文件独立运行良好:Python-urllib+;基本服务器可以';在macos上无法连接,python,urllib,Python,Urllib,我有两个文件,client.py和server.py: client.py server.py 这两个文件独立运行良好: 如果我将client.py更改为requesthttp://stackoverflow.com,我看到了正确的html结果 如果我运行server.py并使用浏览器导航到localhost:8000/info,我会看到Hello这是一台服务器 我的问题是当我运行服务器时,然后是客户端,就像现在一样。客户端将收到错误:连接被拒绝,错误号为61 此错误仅在特定MacOS计算机
- 如果我将client.py更改为request
,我看到了正确的html结果http://stackoverflow.com
- 如果我运行server.py并使用浏览器导航到
,我会看到localhost:8000/info
Hello这是一台服务器
连接被拒绝
,错误号为61
此错误仅在特定MacOS计算机上发生。当相同的代码在其他机器上运行时,一切都正常工作
是什么导致了这个问题?在MacOS上对我很好。您能确认服务器和客户端都在同一台机器上运行吗?谢谢验证-是的,都在同一台机器上运行。一位同事也在他们的mac电脑上运行了相同的代码,所以我们可能是在寻找幽灵:(我个人不知道是什么阻止这台机器运行代码。试着运行服务器,然后按照这里的说明来确保它确实在听:另外,试着直接连接到“127.0.0.1:8000”我知道服务器正在监听,而不是使用localhost,因为我可以从我的浏览器中点击它,而不是从
urllib
中点击。不幸的是,localhost
和127.0.0.1
都出现了问题,如果在终端中使用nc localhost 8000
,您能到达它吗?
from urllib import request
response = request.urlopen('http://localhost:8000/info')
print('The server said:', response.read())
from http.server import HTTPServer, BaseHTTPRequestHandler
class CustomServer(BaseHTTPRequestHandler):
def do_GET(self):
if self.path == '/info':
result = 'Hello this is a server'
else:
result = 'Invalid'
self.send_response(200)
self.end_headers()
self.wfile.write(result.encode())
server = HTTPServer(('localhost', 8000), CustomServer)
server.serve_forever()