2014-03-28 37 views
0

我正在開發Android客戶端和Java服務器應用程序。我發送並收到一個字符串,但我需要一次發送兩個整數值。我應該使用整數數組只有兩個整數?值將如下所示:int value_1 = 5; int value_2 = -10;我發送這樣的字符串;如何用UDP一次發送和讀取兩個整數值?

Android客戶端:我搜索這個在PC

message= new byte[1024]; 
     dp = new DatagramPacket(message, message.length); 
     ds = new DatagramSocket(port); 
    ds.receive(dp); 
    receive= new String(message, 0, dp.getLength()); 

   command = "hello"; 
     dp = new DatagramPacket(command.getBytes(),command.length(), serverAddr, this.port); 
     ds.send(dp); 

... Java服務器,我沒有得到任何東西。我怎樣才能一次發送兩個整數值,以及如何讀取它?

回答

0

我會建議序列化你的整數數據到一個json字符串中,以字符串的形式發送它,然後將它轉換回服務器端。

下面是一個例子:

// client side code 
    int[] clientArray = { 5, -10 }; 
    String command = new Gson().toJson(clientArray); 
    dp = new DatagramPacket(command.getBytes(), command.length(), serverAddr, this.port); 
    ds.send(dp); 

    // server side code 
    message = new byte[1024]; 
    dp = new DatagramPacket(message, message.length); 
    ds = new DatagramSocket(port); 
    ds.receive(dp); 
    receive = new String(message, 0, dp.getLength()); 
    int[] serverArray = new Gson().fromJson(command, int[].class);