Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-urllib+;基本服务器可以';在macos上无法连接_Python_Urllib - Fatal编程技术网

Python-urllib+;基本服务器可以';在macos上无法连接

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和server.py:

client.py

server.py

这两个文件独立运行良好:

  • 如果我将client.py更改为request
    http://stackoverflow.com
    ,我看到了正确的html结果
  • 如果我运行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()