Heim  >  Artikel  >  Java  >  Java-Beispiel – Beispiel für ServerSocket- und Socket-Kommunikation

Java-Beispiel – Beispiel für ServerSocket- und Socket-Kommunikation

黄舟
黄舟Original
2017-01-21 10:54:261431Durchsuche

Das folgende Beispiel zeigt, wie der Client implementiert wird, um eine Nachricht an den Server zu senden. Der Server empfängt die Nachricht und liest die Ausgabe, schreibt sie dann an den Client und der Client empfängt die Ausgabe.

1. Stellen Sie den Server her

  • Der Server stellt den Kommunikations-ServerSocket her

  • Der Server stellt den Socket her, um die Client-Verbindung zu empfangen

  • Erstellen Sie einen E/A-Eingabestream, um die vom Client gesendeten Daten zu lesen

  • Erstellen Sie einen E/A-Ausgabestream, um Datennachrichten an den Client zu senden

Serverseitiger Code:

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();
      }
   }}

Das Ausgabeergebnis der Ausführung des obigen Codes ist:

启动服务器....

2. Client erstellen

  • Socket-Kommunikation erstellen, IP und Port des Kommunikationsservers festlegen

  • Einen E/A-Ausgabestream erstellen, um Datennachrichten an den Server zu senden

  • Erstellen Sie einen E/A-Eingabestream, um die vom Server gesendeten Daten zu lesen. Datennachricht

Client-Code:

/*
 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();
      }
   }}

Das Ausgabeergebnis Das Ausführen des obigen Codes ist:

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

Das Obige ist das Java-Instanz-ServerSocket- und Socket-Kommunikationsbeispiel. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn