亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JAVA后端學(xué)習(xí)精華之網(wǎng)絡(luò)通信項目進階

 更新時間:2021年09月28日 15:28:47   作者:冷丁_  
不同項目之間的通信方式分為,http、socket、webservice;其中socket通信的效率最高,youtube就采用的是原始的socket通信,他們信奉的原則是簡單有效

Java網(wǎng)絡(luò)通信項目進階

一、網(wǎng)絡(luò)通信解決的問題

不同機器,不同程序之間的數(shù)據(jù)交換

二、計算機網(wǎng)絡(luò)的概念

計算機網(wǎng)課是指將地理位置不同的具有獨立功能的多臺計算機及外部設(shè)備通過通信線路連接起來,在網(wǎng)絡(luò)操作系統(tǒng),網(wǎng)絡(luò)管理軟件及網(wǎng)絡(luò)通信協(xié)議的管理和協(xié)調(diào)下,實現(xiàn)資源共享和信息傳遞的計算機系統(tǒng)。

三、IP

  • ip地址:InetAddress
  • 通過ip地址可以唯一定位一臺網(wǎng)絡(luò)上的計算機
  • 127.0.0.1/0.0.0.0 本機localhost,本機,自己的ip都是這個
  • ip地址分類:IPV4/IPV6
  • IPV4 127.0.0.1,4個字節(jié)組,32bit,40億已用盡。
  • IPV6 128位。8個無符號整數(shù),如:
2001:0bb2:aaaa:0015:0000:0000:1aaa:1312
  • 局域網(wǎng)中的IP地址:同一個網(wǎng)絡(luò)中其他機器可以使用這個IP訪問你的機器
  • 同一個區(qū)域多臺計算機構(gòu)成局域網(wǎng)->多個局域網(wǎng)構(gòu)成城域網(wǎng)->多個城域網(wǎng)構(gòu)成廣域網(wǎng)

四、域名

域名如:www.baidu.com

因為ip地址不好記憶,且長期更換,所以由域名來代替ip地址方便記憶

DNS根服務(wù)器

DNS(Domain Name System,域名系統(tǒng)),因特網(wǎng)上作為域名和IP地址互相映射的一個分布式數(shù)據(jù)庫,能夠使用戶更方便的訪問互聯(lián)網(wǎng),而不用去記住能夠被機器直接讀取的IP數(shù)串

五、端口

端口表示計算機上的一個程序或進程;

不同的進程有不同的端口號,用來區(qū)分軟件

單個協(xié)議下端口號不能沖突

端口分離

公有端口0-1023

  • HTTP:80
  • HTTPS:43
  • FTP:21
  • Telent:23

程序注冊端口:1024-49141,分配用戶或者程序

  • Tomcat:8080
  • MySQL:3306
  • Oracle:1521

動態(tài)、私有:49152-65535

端口常用指令

netstat -ano #查看所有的端口
netstat -ano|"5900" #查看指定的端口
tasklist|findstr "8986" #查看指定端口的進程

六、利用telnet完成簡單的網(wǎng)絡(luò)通信

雙端通信 C/S架構(gòu),一個為客戶端,一個為服務(wù)端

Socket為Java中包裝TCP連接的一個對象

代碼如下

package com.lding.net;

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

/**
 * @program: Net
 * @description: Telnet實現(xiàn)信息傳輸
 * @author: 王丁
 * @date: 2021-09-15 22:45
 **/

public class TelnetServer {
    public static void main(String[] args) throws IOException {
        //創(chuàng)建一個Socket,Socket包裝tcp連接
        //指定端口
        //端口:65536 0-1024端口盡量不要使用避免沖突
        ServerSocket ssc=new ServerSocket(9999);
        //監(jiān)聽客戶端的Socket連接
        System.out.println("服務(wù)端開啟:ip:"+ssc.getInetAddress().getHostAddress()+"端口號:"+ssc.getLocalSocketAddress());
        System.out.println("正在等待有緣人......");
        //阻塞監(jiān)聽,直到有客戶端連接上來
        Socket socketClient = ssc.accept();
        System.out.println("客戶端已連接:"+socketClient.getInetAddress());
        System.out.println("客戶端端口"+socketClient.getPort());
        //傳輸數(shù)據(jù) IO流 字節(jié)流 字符流
        //服務(wù)端發(fā)送給客戶端消息:從客戶端的Socket獲取一個輸出流,向這個輸出流中寫入數(shù)據(jù)作為消息內(nèi)容
        OutputStream output =socketClient.getOutputStream();
        output.write(97);
        output.write("Hello,Client!!!".getBytes());
        //服務(wù)端從客戶端接收消息:從客戶端的Socket獲取一個輸入流,從這個輸入流中讀數(shù)據(jù)
        InputStream input=socketClient.getInputStream();
        while(true){
            int readnum=input.read();
            System.out.println((char)readnum);
            output.write(("to_:"+(char)readnum).getBytes());
        }

    }
}

運行過程:

服務(wù)端運行后一直等待連接,因為accept方法是一種阻塞監(jiān)聽

在這里插入圖片描述

使用telnet連接端口

命令格式:telnet+空格+ip地址+端口號

在這里插入圖片描述

連接成功后,阻塞結(jié)束

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

使用telnet發(fā)送的數(shù)據(jù)在idea運行端口可以實時收到,實現(xiàn)了客戶端發(fā)送給數(shù)據(jù)到服務(wù)端,同時服務(wù)端也能把接收到的數(shù)據(jù)傳回去

到此這篇關(guān)于JAVA后端學(xué)習(xí)精華之網(wǎng)絡(luò)通信項目進階的文章就介紹到這了,更多相關(guān)Java 網(wǎng)絡(luò)通信內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Cloud Gateway調(diào)用Feign異步問題記錄

    Spring Cloud Gateway調(diào)用Feign異步問題記錄

    這篇文章主要介紹了Spring Cloud Gateway調(diào)用Feign異步問題記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java中的匿名對象定義與用法實例分析

    Java中的匿名對象定義與用法實例分析

    這篇文章主要介紹了Java中的匿名對象定義與用法,結(jié)合實例形式分析了java匿名對象的概念、原理、定義與相關(guān)使用注意事項,需要的朋友可以參考下
    2019-08-08
  • Java設(shè)計模式之原型設(shè)計示例詳解

    Java設(shè)計模式之原型設(shè)計示例詳解

    這篇文章主要為大家詳細(xì)介紹了Java的原型設(shè)計模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • java后端操作樹結(jié)構(gòu)的案例代碼

    java后端操作樹結(jié)構(gòu)的案例代碼

    這篇文章主要介紹了java后端操作樹結(jié)構(gòu),樹結(jié)構(gòu)的三種組裝方式(遞歸.雙層for循環(huán),map),通過實例代碼介紹了使用遞歸查詢某個節(jié)點所在的樹結(jié)構(gòu),需要的朋友可以參考下
    2023-10-10
  • Spring Boot 驗證碼框架 CAPTCHA詳解

    Spring Boot 驗證碼框架 CAPTCHA詳解

    這篇文章主要介紹了Spring Boot 驗證碼框架 CAPTCHA詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Spring Boot使用Spring的異步線程池的實現(xiàn)

    Spring Boot使用Spring的異步線程池的實現(xiàn)

    這篇文章主要介紹了Spring Boot使用Spring的異步線程池的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • MybatisPlus3.5.5與pagehelper?starter2.1.0沖突的問題解決

    MybatisPlus3.5.5與pagehelper?starter2.1.0沖突的問題解決

    在使用MybatisPlus?3.5.5與PageHelper?Starter?2.1.0時,由于引用了不同版本的jsqlparser庫(4.6與4.7),會導(dǎo)致運行時錯誤,解決方案涉及確認(rèn)依賴版本,本文就來介紹一下,感興趣的同學(xué)可以下載學(xué)習(xí)
    2024-10-10
  • 郵件收發(fā)原理你了解嗎? 郵件發(fā)送基本過程與概念詳解(一)

    郵件收發(fā)原理你了解嗎? 郵件發(fā)送基本過程與概念詳解(一)

    你真的了解郵件收發(fā)原理嗎?這篇文章主要為大家詳細(xì)介紹了郵件發(fā)送基本過程與概念,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Java 實戰(zhàn)項目之在線點餐系統(tǒng)的實現(xiàn)流程

    Java 實戰(zhàn)項目之在線點餐系統(tǒng)的實現(xiàn)流程

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)一個在線點餐系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • java實現(xiàn)快速打字游戲

    java實現(xiàn)快速打字游戲

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)快速打字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07

最新評論