我目前正在关注Cloud-Haskell 教程并停留在createTransport
. 在我看来,我只能在 127.0.0.1 为服务器打开传输,而无法为客户端打开连接到服务器的传输。我尝试使用两台机器curl ifconfig.me
来获取我的 IP 地址,但是,createTransport
它不会为我创建传输。有任何想法吗?
编辑:本地现在正在工作。
我的程序和教程一模一样,尝试在两台机器之间进行连接:
curl ifconfig.me
返回101.119.27.24
服务器命令行:
ServerClientServer 101.119.27.24 9000
返回错误:
bind: unsupported operation (Cannot assign rerquested address)
编辑:服务器代码如下:
main :: IO ()
main = do
[host, port] <- getArgs
serverDone <- newEmptyMVar
Right transport <- createTransport host port
Right endpoint <- newEndPoint transport
forkIO $ echoServer endpoint serverDone
putStrLn $ "Echo server started at " ++ show (address endpoint)
readMVar serverDone `onCtrlC` closeTransport transport
和函数在另一个模块中定义echoServer
。onCtrlC
我Right transport <- createTransport host port
改成
t <- createTransport host port defaultTCPParameters
let transport = case t of
(Right t) -> t
(Left e) -> error $ show e
这样我就可以看到错误消息是什么。