Red de conocimiento informático - Conocimiento informático - Cómo enviar y recibir un archivo a través de Socket TCP

Cómo enviar y recibir un archivo a través de Socket TCP

Lo principal es que encapsule los datos que se enviarán a través de la API del socket, y se encapsularán automáticamente en un flujo de datos para su transmisión interna.

1. ¿Qué es Socket?

Dos programas en la red intercambian datos a través de una conexión de comunicación bidireccional. Un extremo de este enlace bidireccional se llama Socket. Socket se usa generalmente para realizar la conexión entre el cliente y el servidor. Socket es una interfaz de programación muy popular para el protocolo TCP/IP. Un socket está determinado únicamente por una dirección IP y un número de puerto.

Sin embargo, los tipos de protocolo admitidos por Socket no se limitan a TCP/IP, por lo que no existe una conexión necesaria entre los dos. En el entorno Java, la programación de Socket se refiere principalmente a la programación de red basada en el protocolo TCP/IP.

2. El proceso de comunicación de Socket

El lado del servidor escucha para ver si hay una solicitud de conexión en un puerto determinado. El lado del cliente envía una solicitud de conexión al lado del servidor. y el lado del servidor envía una solicitud de conexión al lado del cliente. El final devuelve un mensaje de aceptación. Se establece una conexión. Tanto el lado del Servidor como el del Cliente pueden comunicarse entre sí mediante métodos como Enviar y Escribir.

Para un Socket completamente funcional, debe contener la siguiente estructura básica y su proceso de trabajo incluye los siguientes cuatro pasos básicos:

(1) Crear Socket

<; p>(2) Abrir el flujo de entrada/salida conectado al Socket

(3) Realizar operaciones de lectura/escritura en el Socket de acuerdo con un determinado protocolo; Cierre el socket (en aplicaciones reales, el cierre que se muestra no se utiliza. Aunque muchos artículos recomiendan esto, en mi programa, puede deberse a que el programa en sí es relativamente simple y los requisitos no son altos, por lo que no tiene ningún impacto. .)

3. Crear Socket

Crear Socket

Java proporciona dos clases, Socket y ServerSocket, en el paquete java.net, que se utilizan para representar el cliente y el servidor de conexiones bidireccionales respectivamente. Estas son dos clases muy bien encapsuladas y muy cómodas de usar.

Su método de construcción es el siguiente:

Socket(dirección InetAddress, puerto int);

Socket(dirección InetAddress, puerto int, flujo booleano);

Socket (String host, int prot);

Socket(String host, int prot, boolean stream);

Socket(SocketImpl impl)

Socket(String host , int puerto, InetAddress localAddr, int localPort)

Socket(InetAddress dirección, int puerto, InetAddress localAddr, int localPort)

ServerSocket(int puerto);

ServerSocket (puerto int, trabajo pendiente int);

ServerSocket(puerto int, trabajo pendiente int, InetAddress bindAddr)

Cliente de socket = new Socket("127.0.01.", 80) ;

ServerSocket server = new ServerSocket(80);

Si ocurre un error al crear el socket, se generará una IOException, que debe ser manejada en el programa. Entonces, al crear un Socket o ServerSocket, debes detectar o lanzar una excepción.