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

Java網(wǎng)絡(luò)編程TCP實(shí)現(xiàn)聊天功能

 更新時(shí)間:2021年07月04日 17:07:47   作者:跑起來(lái)要帶風(fēng)!  
這篇文章主要為大家詳細(xì)介紹了Java網(wǎng)絡(luò)編程TCP實(shí)現(xiàn)聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

網(wǎng)絡(luò)編程TCP實(shí)現(xiàn)聊天的前提還需要掌握IO流,話不多說(shuō),直接上代碼!

客戶端:

package com.kuang.lesson02;

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

//客戶端
public class TcpClientDemo01 {
    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("你好,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ù)端:

package com.kuang.lesson02;


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

//服務(wù)端
public class TcpServerDemo01 {
    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、等待客戶端連接過(guò)來(lái)
                socket = serverSocket.accept();

                //3、讀取客戶端的消息
                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());
            }


        } catch (Exception 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();
                }
            }
        }

    }
}

運(yùn)行結(jié)果:

1、首先運(yùn)行服務(wù)端,等待接收消息,可以發(fā)現(xiàn)服務(wù)端一直在運(yùn)行

2、接著運(yùn)行客戶端,發(fā)送消息,可以發(fā)現(xiàn)客戶端運(yùn)行結(jié)束

3、返回服務(wù)端查看,可以發(fā)現(xiàn)服務(wù)端已經(jīng)接收到了客戶端發(fā)送來(lái)的消息

4、由于是循環(huán)操作,所以只要客戶端發(fā)送消息來(lái),服務(wù)端就能接收到,可以實(shí)現(xiàn)多次發(fā)送消息。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java依賴注入容器超詳細(xì)全面講解

    Java依賴注入容器超詳細(xì)全面講解

    依賴注入(Dependency Injection)和控制反轉(zhuǎn)(Inversion of Control)是同一個(gè)概念。具體含義是:當(dāng)某個(gè)角色(可能是一個(gè)Java實(shí)例,調(diào)用者)需要另一個(gè)角色(另一個(gè)Java實(shí)例,被調(diào)用者)的協(xié)助時(shí),在 傳統(tǒng)的程序設(shè)計(jì)過(guò)程中,通常由調(diào)用者來(lái)創(chuàng)建被調(diào)用者的實(shí)例
    2023-01-01
  • idea使用Vim的技巧大全分享

    idea使用Vim的技巧大全分享

    vim是一個(gè)高度可配置的文本編輯器,非常穩(wěn)定,可以高效的創(chuàng)建任何文本、持久的、多級(jí)撤銷樹(shù)、支持?jǐn)?shù)百種變成語(yǔ)言和格式、與許多工具集成,本文給大家分享了idea使用Vim的技巧大全,需要的朋友可以參考下
    2024-05-05
  • SpringMVC使用@ExceptionHandler注解在Controller中處理異常

    SpringMVC使用@ExceptionHandler注解在Controller中處理異常

    這篇文章主要為大家介紹了SpringMVC使用@ExceptionHandler注解在Controller中處理異常示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Spring Cloud服務(wù)入口Gateway的介紹和使用問(wèn)題小結(jié)

    Spring Cloud服務(wù)入口Gateway的介紹和使用問(wèn)題小結(jié)

    Spring Cloud Gateway是Spring Cloud的?個(gè)全新的API?關(guān)項(xiàng)?, 基于Spring + SpringBoot等技術(shù)開(kāi)發(fā), ?的是為了替換掉Zuul,這篇文章主要介紹了Spring Cloud服務(wù)入口Gateway的介紹和使用問(wèn)題小結(jié),需要的朋友可以參考下
    2025-03-03
  • 解決spring?data?jpa?saveAll()?保存過(guò)慢問(wèn)題

    解決spring?data?jpa?saveAll()?保存過(guò)慢問(wèn)題

    這篇文章主要介紹了解決spring?data?jpa?saveAll()保存過(guò)慢問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • JavaSE的邏輯控制你了解嗎

    JavaSE的邏輯控制你了解嗎

    這篇文章主要為大家詳細(xì)介紹了JavaSE的邏輯控制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • 淺談Java自定義注解相關(guān)知識(shí)

    淺談Java自定義注解相關(guān)知識(shí)

    今天帶大家來(lái)學(xué)習(xí)Java注解的相關(guān)知識(shí),文中對(duì)自定義注解作了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • Spring Cloud根據(jù)服務(wù)名獲取服務(wù)的ip端口問(wèn)題

    Spring Cloud根據(jù)服務(wù)名獲取服務(wù)的ip端口問(wèn)題

    這篇文章主要介紹了Spring Cloud根據(jù)服務(wù)名獲取服務(wù)的ip端口,本篇示例我就以Nacos注冊(cè)中心為例了,下面是我注冊(cè)的兩個(gè)服務(wù),需要的朋友可以參考下
    2022-09-09
  • Spring加載加密的配置文件詳解

    Spring加載加密的配置文件詳解

    這篇文章主要為大家詳細(xì)介紹了Spring加載加密的配置文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Java編程Post數(shù)據(jù)請(qǐng)求和接收代碼詳解

    Java編程Post數(shù)據(jù)請(qǐng)求和接收代碼詳解

    這篇文章主要介紹了Java編程Post數(shù)據(jù)請(qǐng)求和接收代碼詳解,涉及enctype的三種編碼,post與get等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11

最新評(píng)論

连云港市| 鹤山市| 玉门市| 津南区| 邯郸市| 安泽县| 成安县| 岢岚县| 长子县| 上虞市| 色达县| 昭苏县| 杭锦后旗| 招远市| 怀柔区| 大城县| 东山县| 通州市| 景宁| 锡林浩特市| 会东县| 油尖旺区| 灌云县| 镇原县| 松阳县| 图们市| 米泉市| 清镇市| 揭东县| 措勤县| 江油市| 女性| 万盛区| 彰化市| 巴马| 监利县| 思茅市| 和政县| 玉龙| 阿瓦提县| 故城县|