Cours Java connexes
Douille
public class Socket extends Object
・ Fonction: Client TCP Socket ・ Méthode de construction: prise (Adresse InetAddress, port int) Créez une prise de flux et connectez-la au numéro de port spécifié de l'adresse IP spécifiée ・ Méthodes communes: 1.GetInetAddress Obtenez des informations pertinentes sur InetAddress 2. GetInputStream obtient le flux d'entrée de cette connexion TCP.
Serversocket
public class ServerSocket extends Object
・ Fonction: Socket de serveur TCP ・ Méthode de construction: Serversocket (port int) Créez une prise de serveur liée à un port spécifique. ・ Méthodes courantes: 1.Accept Obtenez la prise du client connecté à TCP 2.Sisé, obtenez l'état fermé de Serversocket
Côté serveur TCP
TcpServer.java
Le serveur adopte une méthode multi-threading. Chaque fois qu'une connexion est établie, un thread Java est démarré et une image est envoyée au client, puis la connexion TCP est fermée.
package cn.xidian.tcpsocket; import java.io.file; import java.io.fileInputStream; import java.io.ioexception; import java.io.outputStream; import java.net.serversocket; {super (); this.clientsocket = clientSocket;} @ Override public void run () {try {// Obtenez l'adresse IP du client et le nom d'hôte ClientAddress = ClientSocket.getinetAddress (). GethostAddress (); String ClientHostName = ClientSocket.getIntetAss ClientAddress + ")" + "connecté avec succès!"); System.out.println ("Maintenant, transférer les données d'image ........."); Long startTime = System.Currenttimemillis (); // Get OutputStreamOutStream Out = ClientInputStream (New Fichier ("/ home / gavinzhou / test.jpg")); byte [] data = new byte [4096]; int length = 0; while ((longueur = in.read (data))! = -1) {out.write (data, 0, longueur); // insistation de données} Fin de fin = System.currenttimellis (); // Système de messages insistants.out.print (Clientln (ClientTname +. "(" + ClientAddress + ")" + "La transmission d'image est réussie," + "Time:" + ((Fintime-Starttime)) + "MS"); // Fermez la ressource dans.Close (); ClientSocket.Close (); System.out.println ("Connexion Close!");} Catch (ioException e) {E.printStackTrace ();}} Public Static Voide (STRACK (] (]) {e.printStackTrace ();); args) lance ioException {// créer un service de connexion TCP, lier le port serversocket tcpSserver = new serversocket (9090); // accepte la connexion et transmettre l'image au client connecté. Chaque connexion TCP est un thread Java while (true) {socket clientSocket = tcpServer.Accept (); new TCPSServer (clientSocket) .Start ();}}}Client TCP
TCPClient
Package cn.xidian.tcpsocket; import java.io.file; import java.io.fileoutputStream; import java.io.ioexception; import java.io.inputstream; import java.net.inputstream; Service // Connexion au socket de serveur TCP natif Socket Socket = new Socket (InetAddress.getLocalHost (), 9090); // Get Input Stream InputStream InputStream = socket.getInputStream (); // Write Data FileOutputStream out = New FileOutputStream (new Fichier (".. Save Long")); Byte [] Data = New Byte [4096] 0; while ((longueur = inputStream.read (data))! = -1) {out.write (data, 0, longueur);} // ferme la ressource out.close (); socket.close ();}}résultat
Tout d'abord, démarrez le serveur sur la ligne de commande, puis démarrez le client. Le résultat est le suivant:
L'image est relativement petite et très rapide!
Résumer
Ce qui précède est le contenu complet de cet article sur la programmation Java pour implémenter un serveur TCP multithread. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!