异常:连接:在 Haskell 中尝试连接到 TCP 套接字时不存在(连接被拒绝)

nbu*_*urk 5 sockets macos haskell tcp

语境

上周在 Real World Haskell 中学习关于编写 TCP 服务器教程。一切顺利,我的最终版本可以正常工作,并且能够在 TCP 客户端和服务器之间发送消息。

然后,我想为我编写的小型井字游戏编写自己的 TCP 服务器。我开始编写服务器和客户端并对其进行了一些尝试,到目前为止服务器能够接受连接,但还没有真正的交互。

现在它变得有点尴尬,因为在我关闭 Mac 并尝试再次重新启动它后,它再也无法启动了。我整个星期五都在摆弄以从单用户模式进行备份并重新安装了 Mac OS。重新安装成功后,我所有的数据都还在,所以我根本不需要备份。

无论如何,今天我又回到了我的 TicTacToe 服务器,但它不再工作了。或者,至少客户端无法再连接到它。

TL; 博士

我为一个 TicTacToe 游戏编写了一个 TCP 服务器,其灵感来自Real World Haskell 中教程,*** Exception: connect: does not exist (Connection refused)在尝试连接到服务器时出现错误。提到的教程中的香草代码也会发生同样的情况。

请注意,我仍然可以使用telnet. 我很确定问题不在于代码,而在于系统级别,因为在我的机器出现问题之前相同的代码正在工作(见上文),我仍在使用 RWH 教程中的相同代码。

nbu*_*urk 6

好的,问题可以通过连接到127.0.0.1而不是来解决localhost。显然,当我的系统出现故障并重新安装时,某些绑定发生了变化,因此ghc不知道如何解决localhost(或类似的问题......)