Avec le développement rapide d'Internet, la programmation réseau est devenue de plus en plus importante. En tant que langage de programmation populaire, Java possède naturellement de fortes capacités de programmation réseau. Cet article fournira une brève introduction à la programmation réseau en Java.
En Java, la programmation réseau nécessite l'utilisation de deux classes importantes : Socket et ServerSocket. La classe Socket est utilisée pour établir des connexions côté client, tandis que ServerSocket est utilisé pour créer des connexions côté serveur. Les objets Socket sont créés en spécifiant l'adresse IP et le numéro de port, tandis que ServerSocket est créé en spécifiant le numéro de port local.
Lors de la programmation réseau, vous devez comprendre certains protocoles de transmission réseau de base, tels que TCP/IP, UDP et HTTP. TCP/IP et UDP sont les deux protocoles les plus couramment utilisés. TCP/IP est un protocole orienté connexion qui permet une transmission de données fiable, tandis que UDP est un protocole sans connexion qui permet une transmission de données plus rapide. Le protocole HTTP est un protocole de requête et de réponse hors ligne, largement utilisé dans la communication entre les serveurs Web et les navigateurs.
Voici un exemple de programme client/serveur simple :
Client :
import java.net.*; import java.io.*; public class Client { public static void main(String [] args) { String serverName = args[0]; int port = Integer.parseInt(args[1]); try { System.out.println("连接到主机:" + serverName + " ,端口号:" + port); Socket client = new Socket(serverName, port); System.out.println("远程主机地址:" + client.getRemoteSocketAddress()); OutputStream outToServer = client.getOutputStream(); DataOutputStream out = new DataOutputStream(outToServer); out.writeUTF("Hello from " + client.getLocalSocketAddress()); InputStream inFromServer = client.getInputStream(); DataInputStream in = new DataInputStream(inFromServer); System.out.println("服务器响应: " + in.readUTF()); client.close(); } catch (IOException e) { e.printStackTrace(); } } }
Serveur :
import java.net.*; import java.io.*; public class Server extends Thread { private ServerSocket serverSocket; public Server(int port) throws IOException { serverSocket = new ServerSocket(port); serverSocket.setSoTimeout(10000); } public void run() { while(true) { try { System.out.println("等待客户端连接,端口号为:" + serverSocket.getLocalPort() + "..."); Socket server = serverSocket.accept(); System.out.println("远程主机地址:" + server.getRemoteSocketAddress()); DataInputStream in = new DataInputStream(server.getInputStream()); System.out.println(in.readUTF()); DataOutputStream out = new DataOutputStream(server.getOutputStream()); out.writeUTF("感谢连接我:" + server.getLocalSocketAddress() + " Goodbye!"); server.close(); } catch (SocketTimeoutException s) { System.out.println("Socket timed out!"); break; } catch (IOException e) { e.printStackTrace(); break; } } } public static void main(String [] args) { int port = Integer.parseInt(args[0]); try { Thread t = new Server(port); t.start(); } catch (IOException e) { e.printStackTrace(); } } }
Ce programme démontre la communication simple entre le client et le serveur. Lorsque le client s'exécute, il envoie une chaîne au serveur et le serveur répond avec la chaîne.
La programmation réseau en Java peut être effectuée à l'aide de protocoles tels que TCP/IP et UDP. Lors de l'écriture de programmes réseau, vous devez utiliser la classe Socket et la classe ServerSocket.
Ce qui précède n'est que la partie introductive de la programmation réseau en Java. Il y a beaucoup de choses qui doivent être comprises en profondeur sur la programmation réseau, telles que l'envoi et la réception de paquets de données, la programmation réseau multithread et l'accès aux serveurs Web. via HTTP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!