【发布时间】:2015-05-02 18:55:11
【问题描述】:
我创建了一个服务器,它使用线程来允许多个节点连接,当它们连接时,服务器接收节点信息并将其存储到链表中。我遇到的问题是,当节点连接到服务器时,会检索信息但不会存储在列表中。不是说明请求的信息,而是显示当前连接的节点:loadbalancer.NodeList@77c57d28。任何帮助都会很棒。谢谢。
下面是链表,保存为NodeList:
public class NodeList {
private String name;
private InetAddress address;
private int port;
private String nodeInformation;
LinkedList nodeList = new LinkedList();
public void Name(String name){
this.name = name;
}
public void Address(InetAddress address){
this.address = address;
}
public void Port(int port){
this.port = port;
}
public void addNode (NodeL node){
node = new NodeL(address,port);
nodeList.add(name + address + port);
}
public String getNode(){
Object nodeInf = nodeList.getFirst();
nodeInformation = nodeInf.toString();
return nodeInformation;
}
}
下面是我用来创建节点的类:
public class NodeL {
private String name;
private InetAddress address;
private int port;
private String nodeInfo;
public NodeL(InetAddress a, int p){
address = a; port = p;
}
@Override
public String toString(){
return address + " " + port;
}
}
这里是线程:
public class NodeManager extends Thread{
private Socket serverSocket = null;
private BufferedReader in;
private PrintWriter out;
public InetAddress nodeIP;
public int nodePort;
public String string;
public NodeManager(Socket serverSocket) throws IOException {
this.serverSocket = serverSocket;
}
//LinkedList nodeList = new LinkedList()
@Override
public void run() {
NodeList nodelist = new NodeList();
while(true){
try {
//byte[] buffer = new byte [1024];
in = new BufferedReader(new InputStreamReader(serverSocket.getInputStream()));
out = new PrintWriter(this.serverSocket.getOutputStream(), true);
String received = in.toString();
nodeIP = serverSocket.getInetAddress();
nodePort = serverSocket.getPort();
System.out.println("Node IP: " + nodeIP);
System.out.println("Node Port number: " + nodePort);
nodelist.Address(nodeIP);
nodelist.Port(nodePort);
nodelist.addNode(null);
System.out.println("Current nodes connected: " + nodelist);
break;
} catch (Exception error) {
}
}}
}
更新:
链表还会覆盖添加的第一个节点。任何说明为什么都会很棒。
为代码的状态道歉,我对编程和 java 还很陌生。
干杯。
【问题讨论】:
标签: java netbeans linked-list inputstream