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

Java 網(wǎng)絡(luò)編程之 TCP 實(shí)現(xiàn)簡(jiǎn)單的聊天系統(tǒng)

 更新時(shí)間:2020年11月20日 09:06:00   作者:Hateyes  
這篇文章主要介紹了Java 網(wǎng)絡(luò)編程之 TCP 實(shí)現(xiàn)簡(jiǎn)單的聊天系統(tǒng),幫助大家更好的理解和學(xué)習(xí)Java 網(wǎng)絡(luò)編程,感興趣的朋友可以了解下

客戶(hù)端

1、連接服務(wù)器 Socket

2、發(fā)送消息

package lesson02;

import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;

/**
 * 客戶(hù)端
 */
public class TcpClientDemo1 {

  public static void main(String[] args) {

    Socket socket = null;
    OutputStream os = null;

    try {
      //1、要知道服務(wù)器的地址 端口號(hào)
      InetAddress serverIP = InetAddress.getByName("127.0.0.1");
      int port = 9999;
      //2、創(chuàng)建一個(gè) socket 連接
      socket = new Socket(serverIP, port);
      //3、發(fā)送消息 IO流
      os = socket.getOutputStream();
      os.write("你好,歡迎學(xué)習(xí)狂神學(xué)Java".getBytes());

    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (os != null){
        try {
          os.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (socket != null){
        try {
          socket.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
  }

}

服務(wù)端

1、建立服務(wù)的端口 ServerSocket

2、等待用戶(hù)的連接 accept

3、接收用戶(hù)的消息

package lesson02;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 服務(wù)端
 */
public class TcpServerDemo1 {

  public static void main(String[] args) {

    ServerSocket serverSocket = null;
    Socket socket = null;
    InputStream is = null;
    ByteArrayOutputStream baos = null;

    try {
      //1、我得有一個(gè)地址
      serverSocket = new ServerSocket(9999);

      while (true){
        //2、等待客戶(hù)端連接過(guò)來(lái)
        socket = serverSocket.accept();
        //3、讀取客戶(hù)端的消息
        is = socket.getInputStream();

        //管道流
        baos = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len;
        while((len = is.read(buffer)) != -1){
          baos.write(buffer, 0 , len);
        }
        System.out.println(baos.toString());
      }

      /*
      byte[] buffer = new byte[1024];
      int len;
      while ((len = is.read(buffer)) != -1){
        String msg = new String(buffer, 0, len);
        System.out.println(msg);
      }
      */

    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      //關(guān)閉資源
      if (baos != null){
        try {
          baos.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (is != null){
        try {
          is.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (socket != null){
        try {
          socket.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (serverSocket != null){
        try {
          serverSocket.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
  }

}

服務(wù)端

1、建立服務(wù)的端口 ServerSocket

2、等待用戶(hù)的連接 accept

3、接收用戶(hù)的消息

package lesson02;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 服務(wù)端
 */
public class TcpServerDemo1 {

  public static void main(String[] args) {

    ServerSocket serverSocket = null;
    Socket socket = null;
    InputStream is = null;
    ByteArrayOutputStream baos = null;

    try {
      //1、我得有一個(gè)地址
      serverSocket = new ServerSocket(9999);

      while (true){
        //2、等待客戶(hù)端連接過(guò)來(lái)
        socket = serverSocket.accept();
        //3、讀取客戶(hù)端的消息
        is = socket.getInputStream();

        //管道流
        baos = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int len;
        while((len = is.read(buffer)) != -1){
          baos.write(buffer, 0 , len);
        }
        System.out.println(baos.toString());
      }

      /*
      byte[] buffer = new byte[1024];
      int len;
      while ((len = is.read(buffer)) != -1){
        String msg = new String(buffer, 0, len);
        System.out.println(msg);
      }
      */

    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      //關(guān)閉資源
      if (baos != null){
        try {
          baos.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (is != null){
        try {
          is.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (socket != null){
        try {
          socket.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
      if (serverSocket != null){
        try {
          serverSocket.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
  }

}

以上就是Java 網(wǎng)絡(luò)編程之 TCP 實(shí)現(xiàn)簡(jiǎn)單的聊天系統(tǒng)的詳細(xì)內(nèi)容,更多關(guān)于Java 實(shí)現(xiàn)簡(jiǎn)單的聊天系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之醫(yī)院心理咨詢(xún)問(wèn)診系統(tǒng)的實(shí)現(xiàn)

    Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之醫(yī)院心理咨詢(xún)問(wèn)診系統(tǒng)的實(shí)現(xiàn)

    這是一個(gè)使用了java+Spring+Maven+mybatis+Vue+mysql開(kāi)發(fā)的醫(yī)院心理咨詢(xún)問(wèn)診系統(tǒng),是一個(gè)畢業(yè)設(shè)計(jì)的實(shí)戰(zhàn)練習(xí),具有心理咨詢(xún)問(wèn)診該有的所有功能,感興趣的朋友快來(lái)看看吧
    2022-01-01
  • 七段小代碼解決Java程序常見(jiàn)的崩潰場(chǎng)景

    七段小代碼解決Java程序常見(jiàn)的崩潰場(chǎng)景

    這篇文章主要為大家介紹了七段小代碼解決Java程序常見(jiàn)的崩潰場(chǎng)景,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • springboot中rabbitmq實(shí)現(xiàn)消息可靠性機(jī)制詳解

    springboot中rabbitmq實(shí)現(xiàn)消息可靠性機(jī)制詳解

    這篇文章主要介紹了springboot中rabbitmq實(shí)現(xiàn)消息可靠性機(jī)制詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-09-09
  • JAVA實(shí)現(xiàn)圖書(shū)管理系統(tǒng)項(xiàng)目

    JAVA實(shí)現(xiàn)圖書(shū)管理系統(tǒng)項(xiàng)目

    相信每一個(gè)學(xué)生學(xué)編程的時(shí)候,應(yīng)該都會(huì)寫(xiě)一個(gè)小項(xiàng)目——圖書(shū)管理系統(tǒng)。為什么這么說(shuō)呢?我認(rèn)為一個(gè)學(xué)校的氛圍很大一部分可以從圖書(shū)館的氛圍看出來(lái),而圖書(shū)管理系統(tǒng)這個(gè)不大不小的項(xiàng)目,接觸的多,也比較熟悉,不會(huì)有陌生感,能夠練手,又有些難度,所以我的小項(xiàng)目也來(lái)了
    2021-10-10
  • MyBatis?Plus?導(dǎo)入IdType失敗的解決

    MyBatis?Plus?導(dǎo)入IdType失敗的解決

    這篇文章主要介紹了MyBatis?Plus?導(dǎo)入IdType失敗的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 通過(guò)一個(gè)命令輕松切換Java的版本

    通過(guò)一個(gè)命令輕松切換Java的版本

    這篇文章主要給大家介紹了如何通過(guò)一個(gè)命令輕松實(shí)現(xiàn)切換Java的版本,通過(guò)本文介紹的方法,大家就可以將jdk版本之間輕松切換,需要的朋友可以參考學(xué)習(xí),下面跟著小編一起來(lái)看看吧。
    2017-05-05
  • 自己寫(xiě)的簡(jiǎn)易版Java日志類(lèi)分享

    自己寫(xiě)的簡(jiǎn)易版Java日志類(lèi)分享

    這篇文章主要介紹了自己寫(xiě)的簡(jiǎn)易版Java日志類(lèi)分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-06-06
  • Java Scanner類(lèi)用法及nextLine()產(chǎn)生的換行符問(wèn)題實(shí)例分析

    Java Scanner類(lèi)用法及nextLine()產(chǎn)生的換行符問(wèn)題實(shí)例分析

    這篇文章主要介紹了Java Scanner類(lèi)用法及nextLine()產(chǎn)生的換行符問(wèn)題,結(jié)合實(shí)例形式分析了Scanner類(lèi)功能、hasNextInt()和nextInt()方法使用及nextLine()產(chǎn)生的換行符問(wèn)題解決方法,需要的朋友可以參考下
    2019-03-03
  • 深入理解Spring Cloud Zuul過(guò)濾器

    深入理解Spring Cloud Zuul過(guò)濾器

    這篇文章主要給大家介紹了關(guān)于Spring Cloud Zuul過(guò)濾器的相關(guān)資料,通過(guò)閱讀本文您將了解:Zuul過(guò)濾器類(lèi)型與請(qǐng)求生命周期、如何編寫(xiě)Zuul過(guò)濾器、如何禁用Zuul過(guò)濾器和Spring Cloud為Zuul編寫(xiě)的過(guò)濾器及其功能,需要的朋友可以參考下。
    2017-02-02
  • java反射拼接方法名動(dòng)態(tài)執(zhí)行方法實(shí)例

    java反射拼接方法名動(dòng)態(tài)執(zhí)行方法實(shí)例

    下面小編就為大家?guī)?lái)一篇java反射拼接方法名動(dòng)態(tài)執(zhí)行方法實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08

最新評(píng)論

山阳县| 阳新县| 西华县| 上栗县| 吴桥县| 武山县| 宁乡县| 九龙城区| 诸暨市| 通江县| 台中县| 磐安县| 利辛县| 深水埗区| 恩施市| 大足县| 井陉县| 定陶县| 白水县| 大足县| 鄢陵县| 洛浦县| 岐山县| 衡东县| 乌鲁木齐县| 综艺| 岳西县| 关岭| 江门市| 关岭| 岢岚县| 施甸县| 团风县| 兴海县| 南昌县| 西充县| 清苑县| 九江市| 汤原县| 衡南县| 南京市|