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

Java 소켓 바이트 스트림 전송 예제 분석

이 문서는 Java socket 바이트 스트림 전송 예제를 공유하여 참고하며, 구체적인 내용은 다음과 같습니다.

서버 측 server side: 

package com.yuan.socket;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
 * YUAN에 의해 만들어진 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();
        // -blocking wait, every time a request is received, a new connection instance is created
        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 서버 = new TalkServer4Byte();
    서버.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;
/**
 * YUAN에 의해 만들어진 2016-09-17.
 */
public class TalkClient4Byte {
  private Socket 소켓;
  private SocketAddress 주소;
  public TalkClient4Byte() {
    socket.close();
      소켓 = 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 sendToClient
        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#w로 보내 주세요.3codebox.com(이메일을 보내면, #을 @으로 변경하십시오. 신고하고 관련 증거를 제공하십시오. 사실이 확인되면, 이 사이트는 즉시 의심스러운 저작권 내용을 삭제합니다.

좋아하는 것