studio socket example datagramsocket java android sockets udp

java - socket - udp sender android studio



Android UDP no puede recibir desde fuera de LAN (2)

192.168.0.X es una dirección NAT interna. Cualquier red puede usarlo, pero no se puede acceder desde ningún lugar fuera. O necesita configurar su enrutador para pasarlo a su PC y acceder a la IP externa del enrutador, o necesita una dirección de red real.

Mi código no puede recibir mensajes UDP desde fuera de mi red doméstica. La comunicación es entre aplicaciones de Android y Java, con IP dentro de mi LAN (por ejemplo 192.168.0.3) el código funciona, si pongo mi aplicación de computadora Java dentro de mi servidor en línea (y obviamente cambié cada IP con IPs externas) esto no no funciona; Android puede enviar pero no puede recibir.

Código de Android:

@Override protected Integer doInBackground(Void... params) { DatagramSocket socket = null; byte[] buf = new byte[1024]; DatagramPacket packet = new DatagramPacket(buf, buf.length); try { socket = new DatagramSocket(25565); } catch (Exception e) { Log.i("Ex ", ""); } while (true) { try { socket.receive(packet); String message = new String(packet.getData(), 0,packet.getLength()); Log.i("message", "" + message); } catch (IOException e) { Log.i("IO Ex", ""); } catch (Exception e){ } } }

Código de la aplicación informática Java: http://pastebin.com/2hVGeP6R


Lee atentamente este ejemplo. Supongo que estás tratando de leer y escribir en el mismo socket mientras está abierto. En caso de que no funcione, pega un código más para ayudarte