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

Java socketバイトストリーム転送の例と解析

本記事では、Java socketバイトストリーム転送の例を共有し、ご参照ください。具体的な内容は以下の通りです

サーバーサイド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);
    Socket socket = null;
    while (true) {
      socket.close();
        // ブロックして待機し、リクエストが一つ受け取られるごとに新しい接続インスタンスを作成します
        socket = server.accept();
        System.out.println("クライアントの接続アドレス:" + socket.getRemoteSocketAddress());
        // デコレーションストリームBufferedReaderで入力ストリームを包装(クライアントのストリームを受け取る)
        BufferedInputStream bis = new BufferedInputStream(
            socket.getInputStream());
        DataInputStream dis = new DataInputStream(bis);
        byte[] bytes = new byte[1while ( // 一度読み取る一个byte
        String ret = "";
        while (dis.read(bytes) != -1) {
          ret += bytesToHexString(bytes) + " ";
          if (dis.available() == 0) { //一つのリクエスト
            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();
      ",1270);1socket.connect(address, 50200);
      public void talk() { 10使用DataInputStreamで入力ストリームをパッケージ化
    }
      }
    }
  }
  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 送信先クライアント
        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();
  }
}

これでこの記事のすべての内容が終わりました。皆様の学習に役立つことを願っています。また、ナイアラベクトル教程に対するサポートを多くいただければ幸いです。

声明:この記事の内容はインターネットから取得しており、著作権者に帰属します。インターネットユーザーにより自発的に貢献し、自己でアップロードされたものであり、このサイトは所有権を持ちません。また、人工編集は行われていません。著作権侵害が疑われる内容を見つけた場合は、以下のメールアドレスまでご連絡ください:notice#oldtoolbag.com(メールを送信する際、#を@に変更してください。報告を行い、関連する証拠を提供してください。一旦確認がとれましたら、このサイトは即座に侵害疑いのコンテンツを削除します。)

おすすめ