El ejemplo de este artículo describe brevemente el método de implementación de la comunicación Socket en Android. El contenido específico es el siguiente:
1. Descripción general de la comunicación por socket
En términos sencillos, el socket es la piedra angular de la comunicación y la unidad operativa básica de comunicación de red que admite el protocolo TCP/IP. Es una representación abstracta del punto final en el proceso de comunicación de la red y contiene cinco tipos de información necesaria para la comunicación de la red: el protocolo utilizado para la conexión, la dirección IP del host local, el puerto de protocolo del proceso local, la dirección IP de el host remoto y el protocolo del proceso remoto.
Cuando la capa de aplicación comunica datos a través de la capa de transporte, TCP encontrará el problema de proporcionar servicios concurrentes a múltiples procesos de aplicación al mismo tiempo. Es posible que sea necesario que varias conexiones TCP o múltiples procesos de aplicación transmitan datos a través del mismo puerto de protocolo TCP. Para distinguir diferentes procesos y conexiones de aplicaciones, muchos sistemas operativos de computadora proporcionan interfaces de socket (Socket) para que las aplicaciones interactúen con el protocolo TCP/IP. La capa de aplicación puede utilizar la interfaz Socket con la capa de transporte para distinguir las comunicaciones de diferentes procesos de aplicación o conexiones de red para implementar servicios concurrentes para la transmisión de datos.
En una palabra, socket es una encapsulación del protocolo TCP/IP.
2. Pasos para utilizar Socket (cliente):
1. Establecer conexión de socket (Tcp)
Es bastante fácil establecer una conexión Socket en Java, lo que se puede lograr utilizando la clase Socket proporcionada por la biblioteca de clases.
Socketclient=null; // Indica cliente client=newSocket("localhost",5000);
2. Enviar datos
PrintStreamout=newPrintStream(socket.getOutputStream()); //PrintStream es el más conveniente para enviar datos
3. Recibir información de devolución
buf=newBufferedReader(newInputStreamReader(socket.getInputStream())); // Complete la recepción única y lea el flujo de entrada del Socket, y lea la información de retorno que contiene.
4. Cerrar el enchufe
Socket.cerrar();
3. Suplemento:
Lado de Socketsever (implementación sin subprocesos múltiples) ServerSocketserver=null; //Definir la clase ServerSocket Socketclient=null; //Indica que el cliente PrintStreamout=null //La salida del flujo de impresión es la más conveniente server=newServerSocket(8888); está en el puerto 8888 Escuche en System.out.println("El servidor se está ejecutando y esperando que el cliente se conecte."); //Obtiene la conexión, el programa entra en estado de bloqueo Stringstr="helloworld"; // Indica la información que se generará out=newPrintStream(client.getOutputStream());out.println(str); cliente cliente.close();servidor.close();