Sockets 系统套接字自定义地址

Sockets 系统套接字自定义地址,sockets,haskell,Sockets,Haskell,我发现模块没有导出的构造函数。它只导出创建特定地址的函数。但是没有任何函数可以创建自定义函数,例如,“192.168.1.1” 如何创建自定义InetAddress 注 在新版本中,有一些纯函数可用于自定义地址: inetAddressFromTuple inetAddressToTuple 不理想,因为它在IO单子中运行,但您可以使用getAddressInfo: {-# LANGUAGE OverloadedStrings #-} import System.Socket import

我发现模块没有导出的构造函数。它只导出创建特定地址的函数。但是没有任何函数可以创建自定义函数,例如,
“192.168.1.1”

如何创建自定义
InetAddress


注 在新版本中,有一些纯函数可用于自定义地址:

  • inetAddressFromTuple
  • inetAddressToTuple

    • 不理想,因为它在IO单子中运行,但您可以使用
      getAddressInfo

      {-# LANGUAGE OverloadedStrings #-}
      
      import System.Socket
      import System.Socket.Family.Inet
      import System.Socket.Type.Stream
      import System.Socket.Protocol.TCP
      
      test = do (addr:_) <- getAddressInfo (Just "192.168.10.1") Nothing aiNumericHost  :: IO [AddressInfo Inet Stream TCP]
                return $ inetAddress (socketAddress addr)
      
      {-#语言重载字符串}
      导入系统套接字
      导入System.Socket.Family.Inet
      导入System.Socket.Type.Stream
      导入System.Socket.Protocol.TCP
      
      test=do(addr:)不理想,因为它在IO monad中运行,但您可以使用
      getAddressInfo

      {-# LANGUAGE OverloadedStrings #-}
      
      import System.Socket
      import System.Socket.Family.Inet
      import System.Socket.Type.Stream
      import System.Socket.Protocol.TCP
      
      test = do (addr:_) <- getAddressInfo (Just "192.168.10.1") Nothing aiNumericHost  :: IO [AddressInfo Inet Stream TCP]
                return $ inetAddress (socketAddress addr)
      
      {-#语言重载字符串}
      导入系统套接字
      导入System.Socket.Family.Inet
      导入System.Socket.Type.Stream
      导入System.Socket.Protocol.TCP
      
      我不喜欢在这里处理IO,但我想这是唯一的方法。谢谢我刚刚将纯函数
      inetAddressFromTuple
      inetAddressToTuple
      添加到库中。你会发现新版本的Hackage。我不喜欢在这里处理IO,但我想这是唯一的方法。谢谢我刚刚将纯函数
      inetAddressFromTuple
      inetAddressToTuple
      添加到库中。你会在Hackage上找到新版本。