2012-04-06 3 views
1

Ich möchte ein Udp-Paket von meinem Laptop an ein Android-Gerät senden, ich schreibe eine einfache App für das, aber es funktioniert nicht, ich denke, dass der Port (5554), den ich verwendet habe Problem. Code:Android UDP-Port

`private void runUdpServer()

EditText RecieveText = (EditText) findViewById(R.id.editText1); 
    EditText check = (EditText) findViewById(R.id.editText2); 
    String lText; 
    byte[] lMsg = new byte[MAX_UDP_DATAGRAM_LEN]; 
    DatagramPacket dp = new DatagramPacket(lMsg, lMsg.length); 
    DatagramSocket ds = null; 
    RecieveText.setText("try1"); 
    try { 

RecieveText.setText("try2"); ds = new DatagramSocket(UDP_SERVER_PORT); // i think the problem is here
//disable timeout for testing
if (ds != null){RecieveText.setText("connected");}
else {RecieveText.setText ("not connected");}

 RecieveText.setText("try"); 

ds.receive(dp); lText = new String(lMsg, 0, dp.getLength()); Log.i("UDP packet received", lText); RecieveText.setText(lText); check.setText("port opened"); } catch (SocketException e) {`` check.setText("SocketException"); e.printStackTrace ();

} catch (IOException e) { 

     e.printStackTrace(); 
     check.setText("port didn't open"); 

    } finally { 
     if (ds != null) { 
      ds.close(); 
      RecieveText.setText("not connected1"); 
     } 
     else {RecieveText.setText("not connected1");} 
    } 
    check.setText("end"); 
    if (ds != null){RecieveText.setText("connected");}    

else {RecieveText.setText("not connected");} } }

Antwort

0

Ich denke nicht, es ist ein Port Problem ist ... Ihr Fehlerprotokoll ausdrucken eine bessere Vorstellung von faillure zu haben .... eine Möglichkeit, dies versuchen ... nicht für Tippfehler geprüft .... Denken Sie auch daran, dass jedes Netzwerk Aufgabe besser ist innerhalb einer Asynchron-Aufgabe zu sein ...

int port =1855; ///any port that you want > 1024 
    DatagramSocket socket = null; 
    try { 
     socket = new DatagramSocket(port); 
    } catch (SocketException e) { 
     e.printStackTrace(); 
    } 
    try { 
     socket.setBroadcast(true); 
    } catch (SocketException e) { 
     e.printStackTrace(); 
    } 


    //////send socket 
    int eport = 1616; 
    InetAddress eip = null; 
    try { 
     eip = InetAddress.getByName("192.168.1.1"); ////SERVER IP ADDRESS 
    } catch (UnknownHostException e) { 
     e.printStackTrace(); 
    } 


    DatagramSocket esocket = null; 
    try { 
     esocket = new DatagramSocket(eport); 
    } catch (SocketException e) { 
     e.printStackTrace(); 
    } 

/// SENDING

byte[] send= new byte[60*1024]; 
    DatagramPacket send_packet = new DatagramPacket(send, send.length); 


    try { 
     socket.send(send_packet); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

////// Start empfangen werden while (true) {

 byte[] message = new byte[60*1024]; 
     DatagramPacket recv_packet = new DatagramPacket(message, message.length); 


     try { 
      socket.receive(recv_packet); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    ///Do something whit recv_packet 
} 
Verwandte Themen