tutorial socket node example android sockets tcp bind serversocket

node - No se puede usar ServerSocket en Android



socket io tutorial (3)

Estoy tratando de escuchar en un puerto usando ServerSocket en un dispositivo Android. Quiero poder conectarme a este puerto a través de WiFi usando una computadora en la misma red.

No me sale una excepción cuando lo conecto a un puerto, sin embargo cuando miro netstat dice:

Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 (null):4040 (null):* LISTEN

He intentado innumerables formas de vincularlo a localhost, 0.0.0.0, la dirección IP WiFi LAN del dispositivo con SocketInetAddress y InetAddress.getByName . Nada parece funcionar.

Cuando trato de conectarme al puerto desde una computadora en el mismo WiFi (he probado Netcat y Java''s Socket.connect() ), todo lo que puedo ver en Wireshark es una solicitud ARP:

Who has [phone''s LAN address]? Tell [computer LAN address].

Esta solicitud se repite hasta que se agota el tiempo de espera.

Lo he intentado de forma inversa, al configurar ServerSocket en la computadora y conectarse a ese puerto desde el teléfono, eso funciona muy bien.

Mi teléfono de prueba es un Samsung Spica i5700 con una ROM personalizada.

¿Algunas ideas?

Editar: El código es simple como este:

ServerSocket server = new ServerSocket(); server.setReuseAddr(true); server.setTimeout(0); server.bind(new InetSocketAddress(4040)); Socket client = null; while((client = server.accept()) == null); // Connected enter code here enter code here


Pude hacer que esto funcionara al usar

ServerSocket server = new ServerSocket( myTcpPort, 0, addr );

donde addr = InetAddress de su teléfono. De lo contrario, solo parece enlazar a localhost (127.0.0.1). Además, estoy usando el puerto 8080.