国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java socket字節(jié)流傳輸示例解析

2019-11-26 13:49:35
字體:
供稿:網(wǎng)友

本文為大家分享了Java socket字節(jié)流傳輸示例,供大家參考,具體內(nèi)容如下

服務(wù)端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() {    try {      server = new ServerSocket(port);    } catch (IOException e) {    }  }  public void talk() {    System.out.println("監(jiān)控端口:" + port);    Socket socket = null;    while (true) {      try {        // 阻塞等待,每接收到一個請求就創(chuàng)建一個新的連接實例        socket = server.accept();        System.out.println("連接客戶端地址:" + socket.getRemoteSocketAddress());        // 裝飾流BufferedReader封裝輸入流(接收客戶端的流)        BufferedInputStream bis = new BufferedInputStream(            socket.getInputStream());        DataInputStream dis = new DataInputStream(bis);        byte[] bytes = new byte[1]; // 一次讀取一個byte        String ret = "";        while (dis.read(bytes) != -1) {          ret += bytesToHexString(bytes) + " ";          if (dis.available() == 0) { //一個請求            doSomething(ret);          }        }      } catch (IOException e) {        System.out.println(e.getMessage());      } finally {        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() {    try {      socket = new Socket();      address = new InetSocketAddress("127.0.0.1", 5020);      socket.connect(address, 1000);    } catch (IOException e) {      e.printStackTrace();    }  }  public void talk() {    try {      //使用DataInputStream封裝輸入流      InputStream os = new DataInputStream(System.in);            byte [] b = new byte[1];      DataOutputStream dos = new DataOutputStream(socket.getOutputStream());      while (-1 != os.read(b)) {        dos.write(b); // 發(fā)送給客戶端      }            dos.flush();      dos.close();    } catch (IOException e) {      e.printStackTrace();    } finally {      try {        socket.close();      } catch (IOException e) {      }    }  }  public static void main(String[] args) {    TalkClient4Byte client = new TalkClient4Byte();    client.talk();  }}

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 太仓市| 乾安县| 于都县| 曲周县| 汶上县| 射阳县| 拜泉县| 封开县| 唐河县| 嘉祥县| 松潘县| 长治市| 星子县| 南京市| 那坡县| 阿克苏市| 田阳县| 曲阳县| 称多县| 新河县| 红原县| 河源市| 简阳市| 琼结县| 高邮市| 株洲市| 武安市| 怀安县| 宽城| 叙永县| 姚安县| 郎溪县| 高安市| 新昌县| 富平县| 即墨市| 荥经县| 仁化县| 景东| 龙口市| 高唐县|