我正在为网络服务器制作自定义设置文件,设置文件如下所示:
[server]
adress = "127.0.0.1"
port = 8080
解析这个的代码:
def main():
parser = SafeConfigParser()
parser.read("settings.cfg")
global adress, port
adress = parser.get("server", "adress")
port = int(float(parser.get("server", "port").rstrip()))
print(adress + str(port))
最后打印代码给出字符串:"127.0.0.1"8080
。不知何故,虽然我的 http.server 服务器不接受这些作为输入:
httpd = server_class((adress, port), Handler)
给出以下错误:
httpd = self.server_class((adress, port), Handler)
File "C:\Python33\lib\socketserver.py", line 430, in __init__
self.server_bind()
File "C:\Python33\lib\http\server.py", line 135, in server_bind
socketserver.TCPServer.server_bind(self)
File "C:\Python33\lib\socketserver.py", line 441, in server_bind
self.socket.bind(self.server_address)
socket.gaierror: [Errno 11004] getaddrinfo failed
当我只是("127.0.0.1", 8080)
输入输入时,它确实有效,但它与配置文件中的内容完全相同。我也试过了localhost
,192.168.1.3
在配置文件中,也不管用。我将如何解决这个问题?其他答案说这是换行符的问题,但打印adress + port
不会在其中任何一个上显示换行符