我正在尝试使用Python编写一个小型Web服务器来捕获HTTP POST请求。但是,在其中的socket.gethostname部分出现了问题。
以下是我的示例代码:
import socket
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
serversocket.bind((socket.gethostname(), 8089))
serversocket.listen(1)
while True:
connection, address = serversocket.accept()
buf = connection.recv(164)
print buf
如果我更改 <\p>
serversocket.bind((socket.gethostname(), 8089))
to
serversocket.bind(("localhost", 8089))
一切都很好,我可以通过telnet访问它,但我需要能够从另一个互联网上的Web服务器连接,因此我需要使用socket.gethostname,但这会阻止我的telnet。
serversocket.bind(("0.0.0.0", 8089))
,这应该会将所有外部地址都绑定起来。 - tdelaneysocket.gethostname()
只是简单地返回raspberrypi
,哈哈。所以,大家要小心 :) - San Askaruly