我面對小困難,我的Java服務器,基本上它的工作原理,但只有一條線路,當我加入另一個不發送,這裏是服務器的代碼片段:我的服務器有什麼問題?
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
if (toSend.length() != 0) {
out.print(toSend);
out.flush();
System.out.println("connected");
toSend.setLength(0);
changeStatusTS(NULL, true);
}
if (in.ready()) {
s = in.readLine();
if ((s != null) && (s.length() != 0)) {
appendToChatBox("INCOMING: " + s + "\n");
if (s.equals("51789181 19426953") == true) {
out.println(ms.lister().toString().replace('[', ' ').replace(']', ' ').trim().replace(',', ' ') + "" + '\n');
out.println(ms.topicDesc().toString().replace('[', ' ').replace(']', ' ').trim().replace(',', ' ') + "" + '\n');
out.flush();
}
}
}
和接收部:
clientSocket = new Socket("10.0.2.2", 1234);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
sentenceX = "" + point.getLatitudeE6();
sentenceY = "" + point.getLongitudeE6();
outToServer.writeBytes(sentenceX + " " + sentenceY + '\n');
String interesting = inFromServer.readLine();
String[] holder = interesting.split("\\s+");
String title = inFromServer.readLine();
String[] titleHolder = title.split("\\s+");
達爾維克顯示器正在打印作爲誤差:
TCP Error: java.lang.ArrayIndexOutOfBoundsException
的程序工作,但它不接收第二out.println();
仔細查看ArrayIndexOutOfBoundsException發生的行(堆棧跟蹤會告訴您在哪一行它發生哪個源文件的代碼)。你正在訪問一個有無效索引的數組。找出索引無效的原因。添加一些日誌語句,以確定它在做什麼。 – Jesper