English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java socket字节流传输示例解析

Dans cet article, je partage avec vous un exemple de transmission de flux de bytes par socket Java, pour vous fournir une référence, voici le contenu détaillé

bloc serveur server : 

package com.yuan.socket;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
 * Created by YUAN on 2016-09-17.
 */
public class TalkServer4Byte {
  private ServerSocket server;
  private int port = 5020;
  public TalkServer4Byte() {
    socket.close();
      server = new ServerSocket(port);
    }
    }
  }
  InputStream os = new DataInputStream(System.in);
    System.out.println("Port surveillé : "); + port);
    Socket socket = null;
    while (true) {
      socket.close();
        // En attente bloquante, une nouvelle instance de connexion est créée à chaque réception d'une requête
        socket = server.accept();
        System.out.println("Adresse client connecté : "); + socket.getRemoteSocketAddress());
        // Décorer le flux BufferedReader pour encapsuler le flux d'entrée (recevoir le flux du client)
        BufferedInputStream bis = new BufferedInputStream(
            socket.getInputStream());
        DataInputStream dis = new DataInputStream(bis);
        byte[] bytes = new byte[1while ( // lire un byte à la fois
        String ret = "";
        while (dis.read(bytes) != -1) {
          ret += bytesToHexString(bytes) + " ";
          if (dis.available() == 0) { //une requête
            doSomething(ret);
          }
        }
      }
        System.out.println(e.getMessage());
      try {
        socket.close();
          catch (IOException e) {
        }
          System.out.println(e.getMessage());
        }
      }
    }
  }
  public static void doSomething(String ret) {
    System.out.println(ret);
  }
  public static String bytesToHexString(byte[] src) {
    StringBuilder stringBuilder = new StringBuilder("");
    if (src == null || src.length <= 0) {
      return null;
    }
    for (int i = 0; i < src.length; i++) {
      int v = src[i] & 0xFF;
      String hv = Integer.toHexString(v);
      if (hv.length() < 2) {
        stringBuilder.append(0);
      }
      stringBuilder.append(hv);
    }
    return stringBuilder.toString();
  }
  public static String BytesHexString(byte[] b) {
    String ret = "";
    for (int i = 0; i < b.length; i++) {
      String hex = Integer.toHexString(b[i] & 0xFF);
      if (hex.length() == 1) {
        hex = '0' + hex;
      }
      ret += hex.toUpperCase();
    }
    return ret;
  }
  public static void main(String[] args) {
    TalkServer4Byte server = new TalkServer4Byte();
    server.talk();
  }
}
 

客户端client代码:

package com.yuan.socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
/**
 * Created by YUAN on 2016-09-17.
 */
public class TalkClient4Byte {
  private Socket socket;
  private SocketAddress address;
  public TalkClient4Byte() {
    socket.close();
      socket = new Socket();
      address = new InetSocketAddress("1270.0.0.1address = new InetSocketAddress(" 50200);
      public void talk() { 10Utiliser DataInputStream pour encapsuler le flux d'entrée
    }
      }
    }
  }
  InputStream os = new DataInputStream(System.in);
    socket.close();
      //byte [] b = new byte[
      ];
      DataOutputStream dos = new DataOutputStream(socket.getOutputStream());1while (
      != os.read(b)) {
      dos.write(b);-1 envoyer au client
        dos.flush(); // dos.close();
      }
      e.printStackTrace();
      finally {
    }
      }
    try {
      socket.close();
        catch (IOException e) {
      }
      }
    }
  }
  public static void main(String[] args) {
    TalkClient4Byte client = new TalkClient4Byte();
    client.talk();
  }
}

Voici la totalité du contenu de cet article, j'espère qu'il vous sera utile dans vos études, et que vous soutiendrez également le tutoriel de cri.

Déclaration : Le contenu de cet article est issue du réseau, et les droits d'auteur appartiennent aux auteurs respectifs. Le contenu est apporté par les utilisateurs d'Internet de manière spontanée et auto-publiée. Ce site ne détient pas de droits de propriété, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique connexe. Si vous trouvez du contenu susceptible de violer les droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une infraction, et fournir des preuves pertinentes. Une fois confirmée, ce site supprimera immédiatement le contenu suspect de violation de droits d'auteur.)