最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Scoket實現(xiàn)雙向通信代碼詳解

 更新時間:2020年06月24日 09:39:12   作者:辰兮要努力  
這篇文章主要介紹了Java Scoket實現(xiàn)雙向通信代碼詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

你好我是辰兮,很高興你能來閱讀,本篇總結了Java Scoket類的相關知識,并且整理了實現(xiàn)雙向通信的相關代碼也有案例實現(xiàn)截圖,分享獲取新知,大家一起進步。

一、網(wǎng)絡通信

網(wǎng)絡通信,在網(wǎng)絡中程序(發(fā)送者)與程序(接受者)之間的數(shù)據(jù)交互。

通信要素①ip + 端口號 ②傳輸協(xié)議

java.net包: 包含了Java用于網(wǎng)絡通信所需的類。

ServerSocket類,用于表示網(wǎng)絡服務

創(chuàng)建網(wǎng)絡服務(創(chuàng)建ServerSocket對象)

//構造器
public ServerSocket(int port)

//創(chuàng)建網(wǎng)絡服務
ServerSocket server = new ServerSocket(9999);

接收網(wǎng)絡請求

//接收網(wǎng)絡請求的方法
public Socket accept()

//網(wǎng)絡服務接收請求(阻塞)
Socket socket = server.accept();

Socket類,網(wǎng)絡套接字,表示網(wǎng)絡連接

發(fā)送網(wǎng)絡請求
//構造器
public Socket(String ip, int port)
//獲取網(wǎng)絡連接中的輸入流
public InputStream getInputStream()
//獲取網(wǎng)絡連接中的輸出流
public OuputStream getOutputStream()

二、接受者(Receiver)

代碼實現(xiàn)如下:信息的接受者

public class Receiver {

  public static void main(String[] args) {

    try {
      ServerSocket server = new ServerSocket(8888);
      Socket socket = server.accept();
      System.out.println("----程序已經(jīng)連接++++");
      InputStream is = socket.getInputStream();
      OutputStream os = socket.getOutputStream();
      InputStreamReader isr = new InputStreamReader(is);
      BufferedReader br = new BufferedReader(isr);
      PrintWriter pw = new PrintWriter(os);
      Runnable r1 = new Runnable() {
        @Override
        public void run() {
          while (true) {
            // 接受信息
            String str;
            try {
              str = br.readLine();
              System.out.println("sender的信息" + str);
            } catch (IOException e) {
              e.printStackTrace();
            }
          }
        }
      };
      Runnable r2 = new Runnable() {
        @Override
        public void run() {
          // 返回信息
          while (true) {
            Scanner scan = new Scanner(System.in);
            String msg = scan.nextLine();
            pw.println(msg);
            pw.flush();
          }
        }
      };
      
      Thread t1 = new Thread(r1);
      Thread t2 = new Thread(r2);
      t1.start();
      t2.start();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

三、發(fā)送者(Sender)

代碼實現(xiàn)如下:信息的發(fā)送者

public class Sender {

  public static void main(String[] args) {
    try {
      Socket socket = new Socket("192.168.1.6", 8888);
      InputStream is = socket.getInputStream();
      OutputStream os = socket.getOutputStream();
      InputStreamReader isr = new InputStreamReader(is);
      BufferedReader br = new BufferedReader(isr);
      PrintWriter pw = new PrintWriter(os);
      Runnable r = new Runnable() {
        @Override
        public void run() {
          while (true) {
            // 發(fā)送信息

            try {
              Scanner scan = new Scanner(System.in);
              String msg = scan.nextLine();
              pw.println(msg);
              pw.flush();
            } catch (Exception e) {
            }

          }

        }
      };

      Runnable r2 = new Runnable() {
        @Override
        public void run() {
          // 接受發(fā)送的信息
          while (true) {
            String str;
            try {
              str = br.readLine();
              System.out.println("接受者receiver:" + str);
            } catch (IOException e) {
              e.printStackTrace();
            }
          }
        }
      };
      Thread t1 = new Thread(r);
      Thread t2 = new Thread(r2);
      t1.start();
      t2.start();

    } catch (UnknownHostException e) {

      e.printStackTrace();
    } catch (IOException e) {

      e.printStackTrace();
    }
  }
}

四、案例截圖

首先看到開啟Receiver,然后開啟Sender

開啟Sender后----看到Receiver控制臺顯示連接成功


Sender發(fā)送信息


Receiver接受到信息,然后回復


點開Sender控制臺,看到回復的信息然后繼續(xù)回復


雙向溝通交流實現(xiàn)

到此這篇關于Java Scoket實現(xiàn)雙向通信代碼詳解的文章就介紹到這了,更多相關Java Scoket 雙向通信內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • SpringBoot ThreadLocal 簡單介紹及使用詳解

    SpringBoot ThreadLocal 簡單介紹及使用詳解

    ThreadLocal 叫做線程變量,意思是 ThreadLocal 中填充的變量屬于當前線程,該變量對其他線程而言是隔離的,也就是說該變量是當前線程獨有的變量,這篇文章主要介紹了SpringBoot ThreadLocal 的詳解,需要的朋友可以參考下
    2024-01-01
  • IDEA中的Kafka管理神器詳解

    IDEA中的Kafka管理神器詳解

    這款基于IDEA插件實現(xiàn)的Kafka管理工具,能夠在本地IDE環(huán)境中直接運行,簡化了設置流程,為開發(fā)者提供了更加緊密集成、高效且直觀的Kafka操作體驗
    2025-01-01
  • RestTemplate文件上傳下載與大文件流式下載

    RestTemplate文件上傳下載與大文件流式下載

    這篇文章主要為大家介紹了RestTemplate文件上傳下載與大文件流式下載的使用方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進步
    2022-03-03
  • Java Swing null絕對布局的實現(xiàn)示例

    Java Swing null絕對布局的實現(xiàn)示例

    這篇文章主要介紹了Java Swing null絕對布局的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • spring聲明式事務 @Transactional 不回滾的多種情況以及解決方案

    spring聲明式事務 @Transactional 不回滾的多種情況以及解決方案

    本文主要介紹了spring聲明式事務 @Transactional 不回滾的多種情況以及解決方案,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java正則表達式,提取雙引號中間的部分方法

    Java正則表達式,提取雙引號中間的部分方法

    今天小編就為大家分享一篇Java正則表達式,提取雙引號中間的部分方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Springboot單元測試編寫實踐

    Springboot單元測試編寫實踐

    在日常的開發(fā)過程中,為了提高代碼的可靠性和健壯性,同時也是檢測代碼的質量,減少測試環(huán)節(jié)的問題,會對完成的業(yè)務功能代碼編寫單元測試,在本文中,將分享一些單元測試的實踐和心得,需要的朋友可以參考下
    2023-11-11
  • SpringCloud Eureka 服務注冊實現(xiàn)過程

    SpringCloud Eureka 服務注冊實現(xiàn)過程

    這篇文章主要介紹了SpringCloud Eureka 服務注冊實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • Java Comparable 和 Comparator 的詳解及區(qū)別

    Java Comparable 和 Comparator 的詳解及區(qū)別

    這篇文章主要介紹了Java Comparable 和 Comparator 的詳解及區(qū)別的相關資料,Comparable 自然排序和Comparator 定制排序的實例,需要的朋友可以參考下
    2016-12-12
  • jvm-jstack常用的用法示例

    jvm-jstack常用的用法示例

    jstack 是一個常用的用于分析 Java 進程的工具。它可以顯示 Java 進程中所有線程狀態(tài)和堆棧信息,幫助定位 Java 進程中的問題,這篇文章主要介紹了jvm-jstack常用的用法示例,需要的朋友可以參考下
    2023-06-06

最新評論

玛沁县| 温州市| 林甸县| 南宁市| 格尔木市| 武义县| 清水县| 汾西县| 大埔县| 吐鲁番市| 鹤庆县| 堆龙德庆县| 涞源县| 台安县| 满城县| 柏乡县| 昌黎县| 洛川县| 平陆县| 施秉县| 偏关县| 东乌珠穆沁旗| 廊坊市| 屏东县| 眉山市| 高清| 灵山县| 锡林郭勒盟| 威宁| 长乐市| 明水县| 淄博市| 大厂| 溧阳市| 宕昌县| 洱源县| 常州市| 连江县| 邢台县| 星子县| 尤溪县|