我正在使用Erlang来编写一个bittorrent客户端.我在同样的问题上已经被困4天了.
我正在向所有对等方发送握手,每个对等方都有自己的ip:port.
我使用gen_tcp:connect来连接.
问题是我无法得到答复.我做了很多研究,并使用一些程序来监控我的入站/出站连接.
对等体获取数据并将回复发送回我用于向其发送握手的端口.
代码明智:get_tcp:connect选择一个端口并使用该端口将数据发送给对等端.同行回复该端口.但是,正如您在Erlang中所知,您需要使用gen_tcp:listen来获取回复连接,您需要指定一个端口.在我的情况下,我应该监听的端口是gen_tcp:connect返回的端口.
我可以使用inet:port获取此端口号,但错误始终相同:正在使用的端口.我理解为什么我得到错误,这只是因为我正在尝试监听的端口已经被gen_tcp:connect使用了.我试图关闭Socket以释放端口,但没有.
所以我的问题是:在Erlang中是否有可能以某种方式连接到对等体并将数据发送到端口然后在同一端口上侦听以进行回复.如果没有,那么我必须能以某种方式告诉对等方将数据发送回我选择的端口.
欢迎来自所有Erlang大师的任何想法.谢谢,
//坦率.