이 코드를 실행할 때 소켓을 사용하여 메시지를 받으려고합니다. NumberFormatException이 발생합니다.
public class ThreadSocket extends Thread {
Socket socket;
int k;
ThreadSocket(Socket socket) {
this.socket = socket;
}
public void run() {
try {
String message = null;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while ((message = bufferedReader.readLine()) != null) {
System.out.println("Incomming message client : " + message);
k += Integer.parseInt(message);
System.out.println("la somme est :" + k);
}
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
이 예외 :
Exception in thread "Thread-0" java.lang.NumberFormatException: For input string: "3 : 2"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at ThreadSocket.run(ThreadSocket.java:33)
나는 여전히 소켓에서받은 가능한 메시지가 무엇인지 잘 모르겠습니다. 다음은 client : number
번호 만 포함 된 메시지뿐만 아니라 양식에있는 메시지를 수락합니다 . 이것이 필요한 것인지 결정하십시오.
while ((message = bufferedReader.readLine()) != null) {
System.out.println("Incomming message client : " + message);
// is there a colon followed by a space in the message?
final String delimiter = ": ";
int indexOfColon = message.lastIndexOf(delimiter);
if (indexOfColon == -1) { // no, no colon and space in message
// try to use entire message
k += Integer.parseInt(message);
} else { // yes
// take out the part after the colon and space and try parsing it as an integer
int number = Integer.parseInt(message.substring(indexOfColon + delimiter.length()));
k += number;
}
System.out.println("la somme est :" + k);
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다