我正在使用Java實現套接字編程。我得到這個錯誤。Java中的NumberFormatException是一個數字的字符串
我的代碼是:
public class UDPServer {
public static void main(String[] args) throws Exception {
byte[] data = new byte[1024];
byte[] sendData = new byte[1024];
byte[] num1b = new byte[1024];
String num1String;
DatagramPacket recievePacket;
String sndmsg;
int port;
DatagramSocket serverSocket = new DatagramSocket(9676);
System.out.println("UDP Server running");
byte[] buffer = new byte[65536];
while(true) {
recievePacket = new DatagramPacket(num1b, num1b.length);
serverSocket.receive(recievePacket);
num1String = new String(recievePacket.getData());
System.out.println(num1String);
System.out.println(num1String.length());
int numbers2=Integer.parseInt(num1String);
我跑我的UDP客戶端:
Enter number 1 :2
Enter number 2 :5
Enter number 3 :4
Enter number 4 :3
Enter number 5 :1
Select Protocol:
1.UDP
2.TCP
1
Data sent to server
我的服務器顯示此:
$ java UDPServer
UDP Server running
waiting for data from client
2
1024
Exception in thread "main" java.lang.NumberFormatException: For input string: "2"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at UDPServer.main(UDPServer.java:49)
$
是什麼原因造成這個錯誤?爲什麼我的字符串2沒有被轉換?
向我們展示整個代碼並指出拋出異常的行。 – ortis 2014-10-28 13:34:29
@我編輯了我的帖子。請檢查? – divinediu 2014-10-28 13:39:50
你在'while'循環中間切斷了代碼。你應該發佈所有的代碼來獲得準確的答案。拋出異常在哪裏?控制檯的輸出是什麼?我想知道什麼'System.out.println(num1String)'打印。 – ortis 2014-10-28 13:42:43