我目前正在关注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
这样我就可以看到错误消息是什么。