我弄了个公网ip,但是没办法访问自己的比特客户端的对外ip和监听的端口号,这两个是怎么回事?他俩的ip和端口号自动加入了dht网络了么?还有国内使用一些大型的dht网络的节点和端口号是不是访问不稳定,我访问经常超时,使用UDP协议访问的
没看明白,你是想用比特彗星做一个DHT超级服务器节点吗?
是的,大佬,就是我现在测试自己用,可以六个联系方式聊聊么
我有个作业是这样要求的,在服务器安装了比特彗星,然后进行种子资源分享,也有公网ip啥的,现在在本地java写的代码,然后想访问我这个自己的稳定的节点,但是链接都是超时,不知道为什么,比特彗星在运行期间会一直链接dht网吧,他的ip地址和端口号不是自动的回去dht网络节点注册成dht网络么,但是现在本地链接就是超时,用公网ip加端口号也不行,就很难受
比特彗星可以做成DHT超级节点服务器的,只要运行客户端起来处于托盘后台运行就行了,比特彗星DHT可以代替市面上的
router.bittorrent.com、router.utorrent.com、dht.transmissionbt.com、router.silotis.us、dht.libtorrent.org
你本地访问的话要用内网ip,用公网ip会因为连接握手ip和访问ip一致形成网络回环产生网络风暴,当然访问不到了
你可以用手机开热点,这样ip地址会变成其他的,就能成功访问了
也可以部署在vps远程服务器中,国内云记得安全组防火墙放通全部TCP/UDP端口,这样你本地电脑和服务器的ip地址就不一样了
我是直接部署私有云服务器上了,,然后打开软件在运行状态,我使用的是内网ip,因为是飞猫类的产品,ip地址会随时变动,单使用java发送udp请求就是超时,没有信息返回,,为什么一定要使用手机的wifi呢?这个和云服务器的ip地址不冲突吧
还有大佬,你发的几个站点我有了解到,但是有个问题哦,这些引导站点访问起来是不是斗不稳定,我访问起来有时候链接的上,有时候链接不上的
为了避免产生网络回环风暴,如果你使用vps服务器,则不需要担心这个问题
比特彗星可以彻底代替他们,成为一个DHT超级服务器
这种情况,就是你的代码有问题了,可以让ai帮你写一个代码,这是我刚让ai写的,你试一下能不能跑起来,ip地址改成你服务器的ip
如果您希望在Java中查询DHT网络,通过指定的服务器IP地址 192.168.1.2:22223
,可以使用类似 JXTA
或其他支持DHT的库。以下是一个基本的示例,展示如何设置连接到指定的DHT服务器并执行查询。
请确保已将所需的库添加到您的项目中。以下是修改过的Java代码示例:
import net.jxta.peergroup.PeerGroup;
import net.jxta.endpoint.Message;
import net.jxta.endpoint.MessageElement;
import net.jxta.impl.endpoint.MessageElementImpl;
public class DHTQueryExample {
public static void main(String[] args) {
String hash = "93d30517d56c09542aee5595d6eacea607d01b83";
String dhtServerAddress = "192.168.1.2:22223";
queryDHT(hash, dhtServerAddress);
}
public static void queryDHT(String hash, String dhtServerAddress) {
try {
// 初始化JXTA网络
PeerGroup netPeerGroup = PeerGroup.getPeerGroup();
// 创建消息
Message message = new Message();
MessageElement element = new MessageElementImpl("hash", hash.getBytes());
message.addMessageElement("query", element);
// 连接到指定的DHT服务器
// 这里应实现发送消息到DHT网络的逻辑
// 实际的实现可能需要使用Socket连接到dhtServerAddress
// 这里是一个伪代码示例,您需要替换成合适的实现
// Socket socket = new Socket("192.168.1.2", 22223);
// OutputStream out = socket.getOutputStream();
// out.write(message.toByteArray());
// out.flush();
// 等待结果并处理(实现具体逻辑)
System.out.println("查询中,请稍候...");
// 处理返回结果的逻辑
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意事项:
- Socket 连接:您需要实现Socket连接的部分,以便与DHT服务器进行通信。
- 错误处理:在实际使用中,请添加适当的错误处理和连接管理。
- 库的使用:根据您所使用的DHT库的不同,具体的实现细节可能会有所不同。请根据文档进行调整。
有问题或需要进一步的帮助,请告诉我!
基本上大差不差,也是udp信息,就是一直链接超时,大佬有没有实际的测试的办法,或者测试链接点确实存在,然后我依照代码找问题
你可以把你的代码让ai找一下哪里有问题,一般来说是调用库,而不是自己去写代码实现,例如ai提到的JXTA库
这个网站可以测试udp是否能成功连接
https://check-host.net/check-udp?host=dht.transmissionbt.com%3A6881
例如测试
dht.transmissionbt.com:6881
返回结果Open or filtered代表服务器可连接
这个库也是很久了,,,,十几年前就有了,现在只能手写了
结果Open or filtered代表服务器可连接,是连接成功,接下来就是你的代码问题了
connected是测试的tcp吧?是代表连接成功tcp,udp是Open or filtered
是的,是tcp,好的,这个代码哪里出问题了,是b编码错误?
能用库实现就别自己造轮子写代码,先把代码改成调用库去试一下,如果不行才考虑自己写
一般来说py的库比较全比较新,java确实用的人比较少
文档斗找不到,用不了
这些库都十几年前就有了