Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo lograr comunicación punto a punto entre 2 aplicaciones

Cómo lograr comunicación punto a punto entre 2 aplicaciones

Para lograr una comunicación punto a punto con Android, puede usar sockets. Para usar sockets, necesita conocer la dirección IP y el número de puerto de la otra parte. He omitido el lado del servidor aquí (si desea escribir software de comunicación formal, todavía necesita un servidor para realizar la transferencia. Use el servidor para conocer la dirección IP de A y luego deje que A sea el lado del servidor y B use la dirección IP de A para obtener datos), solo se mostrarán los principios relevantes, veamos. el lado del servidor primero

1 paquete polly.ServerSocket;

9 import java.net.Socket

10 import java.net.SocketException

11 importar java.util.Enumeration;

12

13 importar android.app.Activity;

14 importar android. os.Bundle;

15 importar android.os.Handler;

16 importar android.util.Log 45 }

46

47 @Override

48 protected void onStop() {

49 super.onStop();

50 prueba {

51 // Asegúrate de cerrar la conexión del socket al salir

52 ss.close ();

53 } catch (IOException e) {

54 e. printStackTrace();

55 }

56 }

57

58 Controlador myUpdateHandler = nuevo Controlador() {

59 public void handleMessage(Mensaje msg) {

60 switch (msg.what) {

61 case MSG_ID:

62 TextView tv = ( TextView) findViewById(R.id.TextView01);

63 tv. setText(mClientMsg);

64 break;

65 Predeterminado:

66 descanso

67 }

68 super.handleMessage(msg);

68 super.handleMessage(msg); p>68 super.handleMessage(msg)handleMessage(msg);

69 }

70 };

71 la clase CommsThread implementa Runnable {

72 public void run() {

73 Socket s = null;

74 try {

75 ss = new ServerSocket(SERVERPORT);

76 } captura (IOException e) {

77 e.printStackT

carrera();

78 }

79 while (!Thread.currentThread().isInterrupted()) {

80 Mensaje m = nuevo Mensaje() ;

81 m.what = MSG_ID;

82 prueba {

83 if (s == null)

84 s = ss.accept();

85 Entrada de BufferedReader = new BufferedReader(new InputStreamReader(s. getInputStream()));

880 Entrada de BufferedReader = new BufferedReader(new InputStreamReader(s. getInputStream()))getInputStream());

86 String st = null

87 st = input.readLine()

88 mClientMsg = st;

89 myUpdateHandler.sendMessage(m);

90 } catch (IOException e) {

91 e.printStackTrace(); p>92 }

93 }

94 }

95 }

96 }

Del lado del servidor y el código en la PC suele ser similar, pero ahora necesitamos transferir el código en la PC al teléfono móvil. Tenga en cuenta que las operaciones que requieren mucho tiempo deben realizarse en subprocesos y luego mirar el código del cliente:

1 paquete polly.liu;

2

3 importar java.io.BufferedWriter

4 importar java.io.IOException; /p>

5 importar java.io.OutputStreamWriter;

6 importar java.io.PrintWriter;

7 importar java.net.InetAddress;