我已經創建了一個服務器,它使用線程來允許多個節點進行連接,當它們連接時,服務器接收節點信息並將其存儲到鏈接列表中。我遇到的問題是,當試圖將NodeManager類中的nodelist.addNode行鏈接到創建新節點的CreateNode類時,它顯示無法找到符號。任何幫助,這是非常感謝。找不到變量地址和端口的符號
下面是在客戶端run()方法:
@Override
public void run() {
clientList client = new clientList();
while(true){
try {
//byte[] buffer = new byte [256];
in = new BufferedReader(new InputStreamReader(s.getInputStream()));
out = new PrintWriter(this.s.getOutputStream(),);
String string = in.toString();
address = socket.getInetAddress();
port = socket.getPort();
System.out.println("address: " + address);
System.out.println("Node Port number: " + port);
clientlist.addNode(new Createclient(address, port));
System.out.println("Current clients connected: " + clientlist);
break;
} catch (Exception error) {
}
}
}
下面是創建客戶端類創建該節點:
如果public class Createclient {
private String name;
private InetAddress address;
private final int port;
private String nodeInfo;
public Createclient(InetAddress a, int p){
address = a; port = p;
}
public InetAddress getAddress() {
return address;
}
public int getPort() {
return port;
}
@Override
public String toString(){
return address + " " + port;
}
}
對不起代碼是凌亂。我對Java和編程非常陌生。
UPDATE:
節點列表覆蓋那個被輸入到列表中的節點。當我打印列表時,它顯示剛剛輸入的節點,而不是將節點添加到現有列表/隊列。
public class clientList {
private String name = "client:";
private String nodeInformation;
LinkedList cleintList = new LinkedList();
public void Name(String name){
this.name = name;
}
public void addclient (Createclient client){
clientList.addLast(name + client.getAddress() + " : " + client.getPort());
}
@Override
public String toString() {
StringBuilder sringb = new StringBuilder();
for(Object client clientList) {
sringb.append(node + "\n");
}
return sringb.toString();
}
任何幫助將是太棒了。謝謝。
哪個符號找不到,代碼中的哪個位置會出現此錯誤,您認爲您確定了它的位置?從這段代碼中,我可以看到至少有6個字段可能或可能沒有定義。 –
它說它無法在nodelist.addNode(new CreateNode(address,port))中找到「address」和「port」;並且已經在CreateNode類中定義@PeterLawrey – JavaNovice