我使用Erlang来编写一个bittorrent客户端。对于同样的问题,我被困了4天。Erlang的TCP端口
我发送握手给所有对等体,每个对等体都有自己的ip:port。
我使用gen_tcp:连接来连接。
问题是我无法得到他们的答复。我做了大量的研究,并使用一些程序来监视我的入站/出站连接。
对等体获取数据并将回复发送回我用来发送握手的端口。
明智的代码:get_tcp:connect选择一个端口并使用该端口将数据发送到对等端。对端回复该端口。但是,正如您在Erlang中所了解的那样,您需要使用gen_tcp:listen来获取回复连接,并且您需要指定一个端口。在我的情况下,我应该监听的端口是gen_tcp:connect返回的端口。
我可以使用inet:port得到这个端口号,但是错误总是一样的:使用中的端口。 我明白为什么我会得到这个错误,这只是因为我试图监听的端口已被gen_tcp:connect使用。我试图关闭Socket来释放端口但没有任何东西。
所以我的问题是:是否有可能在Erlang中以某种方式连接到对等端并将数据发送到端口,然后在该端口上侦听回复。如果没有,那么我必须以某种方式告诉同行将我的数据发回给我选择的端口。
欢迎来自所有爱尔兰大师的任何想法。 谢谢,
//弗兰克。
顺便说一句为什么最近每个人都想写BitTrent的同龄人fpr erlang ??? – 2010-11-11 15:19:14
这是作为一个大学的任务,同行! – 2010-11-11 16:46:26