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

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

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

Java網(wǎng)絡(luò)通信項(xiàng)目進(jìn)階

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

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

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

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

三、IP

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

四、域名

域名如:www.baidu.com

因?yàn)閕p地址不好記憶,且長(zhǎng)期更換,所以由域名來(lái)代替ip地址方便記憶

DNS根服務(wù)器

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

五、端口

端口表示計(jì)算機(jī)上的一個(gè)程序或進(jìn)程;

不同的進(jìn)程有不同的端口號(hào),用來(lái)區(qū)分軟件

單個(gè)協(xié)議下端口號(hào)不能沖突

端口分離

公有端口0-1023

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

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

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

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

端口常用指令

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

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

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

Socket為Java中包裝TCP連接的一個(gè)對(duì)象

代碼如下

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實(shí)現(xiàn)信息傳輸
 * @author: 王丁
 * @date: 2021-09-15 22:45
 **/

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

    }
}

運(yùn)行過(guò)程:

服務(wù)端運(yùn)行后一直等待連接,因?yàn)閍ccept方法是一種阻塞監(jiān)聽(tīng)

在這里插入圖片描述

使用telnet連接端口

命令格式:telnet+空格+ip地址+端口號(hào)

在這里插入圖片描述

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

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

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

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

相關(guān)文章

  • Java?MyBatis實(shí)戰(zhàn)之QueryWrapper中and和or拼接技巧大全

    Java?MyBatis實(shí)戰(zhàn)之QueryWrapper中and和or拼接技巧大全

    在Java中QueryWrapper是MyBatis-Plus框架中的一個(gè)查詢構(gòu)造器,它提供了豐富的查詢方法,其中包括and和or方法,可以用于構(gòu)建復(fù)雜的查詢條件,這篇文章主要給大家介紹了關(guān)于Java?MyBatis實(shí)戰(zhàn)之QueryWrapper中and和or拼接技巧的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • 基于Java實(shí)現(xiàn)Socket編程入門(mén)

    基于Java實(shí)現(xiàn)Socket編程入門(mén)

    Java最初是作為網(wǎng)絡(luò)編程語(yǔ)言出現(xiàn)的,使得客戶端和服務(wù)器的溝通變成了現(xiàn)實(shí),而在網(wǎng)絡(luò)編程中,使用最多的就是Socket,本文就來(lái)介紹一下基于Java實(shí)現(xiàn)Socket編程入門(mén),感興趣的可以來(lái)了解一下
    2022-03-03
  • IntelliJ IDEA 如何徹底刪除項(xiàng)目的步驟

    IntelliJ IDEA 如何徹底刪除項(xiàng)目的步驟

    本篇文章主要介紹了IntelliJ IDEA 如何徹底刪除項(xiàng)目的步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • Java 生產(chǎn)者/消費(fèi)者問(wèn)題實(shí)例詳解

    Java 生產(chǎn)者/消費(fèi)者問(wèn)題實(shí)例詳解

    這篇文章主要實(shí)例分析了java中生產(chǎn)者消費(fèi)者問(wèn)題的方法,需要的朋友可以可以參考下
    2017-04-04
  • Java Springboot 重要知識(shí)點(diǎn)整理匯總

    Java Springboot 重要知識(shí)點(diǎn)整理匯總

    Spring Boot作為微服務(wù)中最好的Java框架,本文主要為大家整理匯總了七個(gè)Spring Boot的重要知識(shí)點(diǎn),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-11-11
  • Apache Commons Math3探索之多項(xiàng)式曲線擬合實(shí)現(xiàn)代碼

    Apache Commons Math3探索之多項(xiàng)式曲線擬合實(shí)現(xiàn)代碼

    這篇文章主要介紹了Apache Commons Math3探索之多項(xiàng)式曲線擬合實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • 如何利用反射生成?MyBatisPlus中QueryWrapper動(dòng)態(tài)條件

    如何利用反射生成?MyBatisPlus中QueryWrapper動(dòng)態(tài)條件

    這篇文章主要介紹了如何利用反射生成?MyBatisPlus中QueryWrapper動(dòng)態(tài)條件,分享在MyBatisPlus中經(jīng)常會(huì)用到代碼來(lái)構(gòu)造查詢條件等內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • Java刪除String中空格的多種解決方法匯總

    Java刪除String中空格的多種解決方法匯總

    在Java中從字符串中刪除空格有很多不同的方法,如trim,replaceAll等,下面這篇文章主要給大家介紹了關(guān)于Java刪除String中空格的多種解決方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • SpringMVC 數(shù)據(jù)校驗(yàn)實(shí)例解析

    SpringMVC 數(shù)據(jù)校驗(yàn)實(shí)例解析

    這篇文章主要介紹了SpringMVC 數(shù)據(jù)校驗(yàn)實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Feign Client 超時(shí)時(shí)間配置不生效的解決

    Feign Client 超時(shí)時(shí)間配置不生效的解決

    這篇文章主要介紹了Feign Client 超時(shí)時(shí)間配置不生效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論

云和县| 阆中市| 临泽县| 杭州市| 唐海县| 哈密市| 龙里县| 集安市| 延安市| 焦作市| 六安市| 汤阴县| 普定县| 车致| 梁平县| 兴和县| 依兰县| 洛隆县| 张北县| 荆门市| 恭城| 驻马店市| 桓台县| 资兴市| 米脂县| 喀喇沁旗| 搜索| 香河县| 阜城县| 贵港市| 中西区| 富源县| 祁门县| 睢宁县| 崇左市| 闻喜县| 碌曲县| 沅陵县| 光山县| 肥乡县| 贺兰县|