使用 Java 中的 Socket 类,我试图创建一个由六个客户端组成的网络,每个客户端都相互连接。
到目前为止,我已经有了不错的想法,我想,我只是不确定如何做到这一点。
基本上,我有一个存储在字符串数组中的主机名列表。我打开到我将使用的每台机器的 ssh 连接,并一个接一个地启动我的客户端。
第一个客户端使用 找到它的主机名InetAddress.getLocalHost().getHostName()
,然后将其与主机名列表进行比较并计算出它的 NodeID:
for(i = 0; i < hostNames.length; i++){
if(localHostName == hostNames[i]){
NodeID = i;
break;
}
...
所以这对我来说是困难的部分:此时我将连接到客户端hostNames[i]
。我的计划是为每个客户端的每个连接设置一个不同的线程。我应该如何去创建这些线程?我应该事先设置一个线程数组并在此时定义线程吗?
Thread[] connections = new Thread[]();
...
//in for loop
connections[i] = new Thread(new ConnectionThread().start(hostNames[i]));
// ConnectionThread being a tentative name for a custom class
这似乎很简单,但我是不是想多了?过于简单化了?