Maison  >  Article  >  Java  >  Exemple Java - Exemple de communication ServerSocket et Socket

Exemple Java - Exemple de communication ServerSocket et Socket

黄舟
黄舟original
2017-01-21 10:54:261483parcourir

L'exemple suivant montre comment implémenter le client pour envoyer un message au serveur, le serveur reçoit le message et lit la sortie, puis l'écrit au client et le client reçoit la sortie.

1. Établir le serveur

  • Le serveur établit la communication ServerSocket

  • Le serveur établit Socket pour recevoir la connexion client

  • Établir un flux d'entrée IO pour lire les données envoyées par le client

  • Établir un flux de sortie IO pour envoyer des messages de données au client

Code côté serveur :

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import 
java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.ServerSocket;
import java.net.Socket;public class Server {
   public static void main(String[] args) {
      try {
         ServerSocket ss = new ServerSocket(8888);
         System.out.println("启动服务器....");
         Socket s = ss.accept();
         System.out.println("客户端:"+s.getInetAddress().getLocalHost()+"已连接到服务器");
         
         BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
         //读取客户端发送来的消息
         String mess = br.readLine();
         System.out.println("客户端:"+mess);
         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
         bw.write(mess+"\n");
         bw.flush();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }}

Le résultat de l'exécution du code ci-dessus est :

启动服务器....

2. Créer un client

  • Créer une communication Socket, définir l'IP et le port du serveur de communication

  • Établir un flux de sortie IO pour envoyer des messages de données au serveur

  • Établir un flux d'entrée IO pour lire les données envoyées par le serveur Message de données

Code client :

/*
 author by w3cschool.cc
 Main.java
 */import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStream;
 import java.io.InputStreamReader;import java.io.OutputStream;
 import java.io.OutputStreamWriter;import java.net.Socket;
 import java.net.UnknownHostException;public class Client {
   public static void main(String[] args) {
      try {
         Socket s = new Socket("127.0.0.1",8888);
         
         //构建IO
         InputStream is = s.getInputStream();
         OutputStream os = s.getOutputStream();
         
         BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
         //向服务器端发送一条消息
         bw.write("测试客户端和服务器通信,服务器接收到消息返回到客户端\n");
         bw.flush();
         
         //读取服务器返回的消息
         BufferedReader br = new BufferedReader(new InputStreamReader(is));
         String mess = br.readLine();
         System.out.println("服务器:"+mess);
      } catch (UnknownHostException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
   }}

Le résultat de la sortie d'exécution du code ci-dessus est :

服务器:测试客户端和服务器通信,服务器接收到消息返回到客户端

Ce qui précède est l'instance Java - Exemples de communication ServerSocket et Socket Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn