我使用network-transport-tcp-0.5.1进行creatipn TCP传输。
resultCT <- createTransport host port defaultTCPParameters
但是现在我使用的是network-transport-tcp-0.6.0软件包并因为新类型而出错:
createTransportExposeInternals
:: N.HostName
-> N.ServiceName
-> (N.ServiceName -> (N.HostName, N.ServiceName))
-> TCPParameters
-> IO (Either IOException (Transport, TransportInternals))
如何使用(N.ServiceName - &gt;(N.HostName,N.ServiceName))的默认值? 也许有一些例子? 谢谢!
答案 0 :(得分:5)
当您选择port
时,createTransport
可能不会使用给定的端口。例如,您可以使用端口"0"
,这意味着可能会使用任何端口。根据使用的端口,外部主机名或服务可能会有很大差异。例如,您的防火墙只会转发a.qspider
上的端口1000-2000和b.qspider
上的2000-3000端口。因此,如果您在1320上绑定,则外部主机和服务名称将为a.qspider:1320
。
或者,您已将端口配置为从外部转发8080
到80
,因此ServiceName
8080
会产生80
+外部地址。< / p>
总而言之,附加参数为您提供了一种正确处理外部端口转发和主机名的方法。如果此时您没有任何外部网络,则只需使用
即可createTransport host port (\port' -> (host, port')) ...