Heim  >  Artikel  >  Java  >  Detaillierte Erläuterung von Client- und Server-Beispielcodes zur Simulation der TCP-Übertragung in Java

Detaillierte Erläuterung von Client- und Server-Beispielcodes zur Simulation der TCP-Übertragung in Java

黄舟
黄舟Original
2017-03-28 10:19:271474Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zu den Client- und Serverbeispielen zur Simulation der TCP-Übertragung in Java vorgestellt

1 Erstellen Sie einen Client für die TCP-Übertragung

1. Um den Socket-Dienst des TCP-Clients einzurichten, wird das Socket-Objekt verwendet. Es wird empfohlen, dass das Ziel klar ist, sobald das Objekt erstellt wird zu verbindender Host;

2. Wenn die Verbindung erfolgreich hergestellt wurde, bedeutet dies, dass dieser Kanal der Socket-Stream ist, der von der untersten Schicht hergestellt wird Es handelt sich um einen Stream, was bedeutet, dass es sowohl Eingabestreams als auch Ausgabestreams gibt. Das Stream- oder Ausgabestream-Objekt kann über Socket abgerufen werden, und zwar über getOutputStream() und getInputStream();

3. Verwenden Sie den Ausgabestream, um die Daten auszuschreiben.


4.

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class Client {
  public static void main(String[] args) throws IOException {

    // 1、创建客户端的Socket服务
    Socket socket = new Socket("192.168.1.100", 10002);

    // 2、获取Socket流中输入流
    OutputStream out = socket.getOutputStream();

    // 3、使用输出流将指定的数据写出去
    out.write("TCP is coming !".getBytes());

    // 4、关闭Socket服务
    socket.close();
  }
}

2. Erstellen Sie einen Server für die TCP-Übertragung

1. Erstellen Sie einen Socket-Dienst für den TCP-Server


2. Der Server muss einen Port zur Außenwelt bereitstellen, sonst kann der Client keine Verbindung herstellen


4. Über das Client-Endobjekt den Socket-Stream abrufen und die vom Client gesendeten Daten lesen.


5. Schließen Sie die Ressource, schließen Sie den Client und schließen Sie den Server.


3. Optimierung des Clients und Servers der TCP-Übertragung

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
  public static void main(String[] args) throws IOException {

    // 1、创建客户端对象
    ServerSocket ss = new ServerSocket(10002);

    // 2、获取连接过来的客户端对象
    Socket s = ss.accept();

    String ip = s.getInetAddress().getHostAddress();

    // 3、通过Socket对象获取输入流,读取客户端发来的数据
    InputStream in = s.getInputStream();

    byte[] buf = new byte[1024];

    int len = in.read(buf);
    String text = new String(buf, 0, len);
    System.out.println(ip + ":" + text);

  // 4、关闭资源
    s.close();
    ss.close();
  }
}

In diesem Teil optimieren wir den Inhalt der ersten beiden Teile und implementieren den TCP-Übertragungsmodus Interaktive Funktionen zwischen Client und Server.

4. Erstellen Sie einen englischen Großschreibungskonvertierungsserver
/**
*优化TCP传输的客户端
*/
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class ClientUpdate {
  public static void main(String[] args) throws IOException {

    Socket socket = new Socket("192.168.1.100", 10002);

    OutputStream out = socket.getOutputStream();

    out.write("tcp!".getBytes());

    // 读取服务端返回的数据,使用Socket读取流
    InputStream in = socket.getInputStream();
    byte[] buf = new byte[1024];

    int len = in.read(buf);

    String text = new String(buf, 0, len);

    System.out.println(text);

    socket.close();
  }
}
/**
*优化TCP传输的服务端
*/
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServerUpdate {
  public static void main(String[] args) throws IOException {

    // 1、创建服务端对象
    ServerSocket ss = new ServerSocket(10002);

    // 2、获取连接过来的客户端对象
    Socket s = ss.accept(); //accept方式为阻塞式方法

    String ip = s.getInetAddress().getHostAddress();

    // 3、通过Socket对象获取输入流,要读取客户端发来的数据
    InputStream in = s.getInputStream();

    byte[] buf = new byte[1024];

    int len = in.read(buf);
    String text = new String(buf, 0, len);
    System.out.println(ip + ":" + text);

    // 使用客户端的Socket对象的输出流给客户端返回数据
    OutputStream out = s.getOutputStream();
    out.write("收到".getBytes());

    s.close();
    ss.close();
  }
}

Wenden Sie die relevanten Eigenschaften von TCP (Transmission Control Protocol, Transmission Control Protocol) an, um einen zu erstellen TCP-basiert Der Server zur Konvertierung der englischen Großschreibung erfordert Folgendes: Der Client gibt Buchstabendaten ein und sendet sie an den Server. Der Server empfängt die Daten und zeigt sie auf der Konsole an, wandelt die Daten in Großbuchstaben um und gibt sie an den Client zurück. Bis der Client „over“ eingibt, endet die Konvertierung.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Client- und Server-Beispielcodes zur Simulation der TCP-Übertragung in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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