Clases de Java relacionadas
Enchufe
public class Socket extends Object
・ Función: TCP Cliente Socket ・ Método de construcción: SCOCKE (Dirección InetAddress, int Port) Cree un Socket de transmisión y conéctelo al número de puerto especificado de la dirección IP especificada ・ Métodos comunes: 1.getInetAddress Obtenga información relevante sobre INETADDRES
Mínimo
public class ServerSocket extends Object
・ Función: TCP Servidor Socket ・ Método de construcción: ServerSocket (puerto int) Cree un enchufe de servidor unido a un puerto específico. ・ Métodos comunes: 1.Apcept obtenga el enchufe del cliente conectado a TCP 2.Scrused obtenga el estado cerrado de Serversocket
Lado del servidor TCP
Tcpserver.java
El servidor adopta un método de subprocesos múltiples. Cada vez que se establece una conexión, se inicia un hilo de Java y se envía una imagen al cliente, y luego la conexión TCP está cerrada.
paquete cn.xidian.tcpsocket; import java.io.file; import java.io.fileInputStream; import java.io.ioException; import java.io.outputstream; import java.net.serversocket; import java.net.socket; public class TCPServer Extiense Thread {Splocket Cientsocket; {super (); this.clientsocket = clientsocket;}@anverride public void run () {try {// Obtener la dirección IP del cliente y el nombre de host String ClientAddress = ClientSocket.getInetAddress (). GethostDdress (); String ClientHostName = CLAYSOCKECKETINETETETDRES ClientAddress + ")" + "conectado con éxito!"); System.out.println ("Ahora, transfiere datos de imagen ........."); Long StartTime = System.CurrentTimemillis (); // Obtener OutputStreMoutPutStream Out = Clientsocket.getOutStream (); // Transferir datos de datos FileInputStream en = New FileInputSte (new New File ("/home/gavinzhou/test.jpg")); byte [] data = new Byte [4096]; int longitud = 0; while ((longitud = in.read (data))! = -1) {out.write (data, 0, longitud); // Escribe datos} Long Time = System.CurrentTimemillis (); // System.out.Println (Clientname + " + ClientAddress + ")" + "La transmisión de la imagen es exitosa," + "Tiempo:" + ((EndTime-starttime)) + "MS"); // Cerrar el recurso en.close (); Clientsocket.Close (); System.out.Println ("Connection Close!");} Catch (IOOException e) {E.PrintstArtAtTrace ();}}} Voids static. IoException {// Cree un servicio de conexión TCP, une el puerto Serversocket TCPServer = new Serversocket (9090); // Acepte la conexión y pase la imagen al cliente conectado. Cada conexión TCP es un hilo de Java mientras (verdadero) {socket clientsocket = tcpserver.accept (); nuevo tcpserver (clientsocket) .start ();}}}Cliente TCP
Tcpclient
paquete cn.xidian.tcpsocket; import java.io.file; import java.io.fileOutputStream; import java.io.ioexception; import java.io.inputstream; import java.net.inputputStream; import java.net.socket; public class tcpCpClient {public static void main (String [] shole) Servicio // Conéctese al Socket nativo del servidor TCP Socket = new Socket (inetaddress.getLocalHost (), 9090); // Obtenga la transmisión de entrada inputstream inputStream = Socket.getInputStream (); // Escribir datos FileOutputPutPut = newOutputStream (nuevo archivo ("../ Save.jpg"); 0; while ((longitud = inputStream.read (data))! = -1) {out.write (data, 0, longitud);} // Cierre el recurso out.close (); socket.close ();}}resultado
Primero, inicie el servidor en la línea de comando y luego inicie el cliente. El resultado es el siguiente:
¡La imagen es relativamente pequeña y muy rápida!
Resumir
Lo anterior es el contenido completo de este artículo sobre la programación de Java para implementar un servidor TCP multiproceso. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!