Java第二十一章

一.網絡程序設計基礎

1.網絡協議

????????網絡協議規定了計算機之間連接的物理、機械(網線與網卡的連接規定)、電氣(有效的電平范圍)等特征,計算機之間的相互尋址規則,數據發送沖突的解決方式,長數據如何分段傳送與接收等內容.就像不同的國家有不同的法律一樣,目前網絡協議也有多種。

TCP與UDP 協議

????????在 TCP/IP 協議棧中,有兩個高級協議是網絡應用程序編寫者應該了解的,即傳輸控制協議Transmission Control Protocol,TCP) 與用戶數據報協議 (User Datagram Protocol,UDP)。TCP 協議是一種以固接連線為基礎的協議,它提供兩臺計算機間可靠的數據傳送。TCP 可以保證數據從一端送至連接的另一端時,能夠確實送達,而且抵達的數據的排列順序和送出時的順序相同。

2.端口與套接字

????????一般而言,一臺計算機只有單一的連到網絡的物理連接(Physical Connection),所有的數據都通過此連接對內、對外送達特定的計算機,這就是端口。網絡程序設計中的端口(port)并非真實的物理存在,而是一個假想的連接裝置。端口被規定為一個在0~65535 的整數。HTTP 服務一般使用80端口,FTP 服務使用 21端口。假如一臺計算機提供了 HTTP、FTP 等多種服務,那么客戶機會通過不同的端口來確定連接到服務器的哪項服務上,如圖所示。

二.TCP協議

????????TCP 網絡程序設計是指利用 Socket 類編寫通信程序。利用TCP 協議進行通信的兩個應用程序是有主次之分的,一個稱為服務器程序,另一個稱為客戶機程序,兩者的功能和編寫方法大不一樣

1.InetAddress類

????????java.net 包中的 InetAddress 類是與 IP 地址相關的類,利用該類可以獲取 IP 地址、主機地址等信息

例1.

2.ServeSocket類

????????java.net 包中的 ServerSocket 類用于表示服務器套接字,其主要功能是等待來自網絡上的“請求”它可通過指定的端口來等待連接的套接字。服務器套接字一次可以與一個套接字連接。如果多臺客戶機同時提出連接請求,服務器套接字會將請求連接的客戶機存入列隊中,然后從中取出一個套接字,與服務器新建的套接字連接起來。若請求連接數大于最大容納數,則多出的連接請求被拒絕。隊列的默認大小是 50。

3.TCP網絡程序設計

????????明白了 TCP 程序工作的過程,就可以編寫 TCP 服務器程序了。在網絡編程中,如果只要求客戶機向服務器發送消息,不要求服務器向客戶機發送消息,稱為單向通信。客戶機套接字和服務器套接字連接成功后,客戶機通過輸出流發送數據,服務器則通過輸入流接收數據。下面是簡單的單向通信的實例

例2.

三.UDP協議

基于UDP 通信的基本模式如下:

將數據打包 (稱為數據包),然后將數據包發往目的地。

接收別人發來的數據包,然后查看數據包。

發送數據包的步驟如下:

(1)使用 DatagramSocket0創建一個數據包套接字。

(2)?使用 DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)創建要發送的數據包。

(3)使用 DatagramSocket 類的 send()方法發送數據包。

接收數據包的步驟如下:

(1)使用 DatagramSocket(int port)創建數據包套接字,綁定到指定的端口。

(2)使用 DatagramPacket(byte[] buf,int length)創建字節數組來接收數據包

(3)?使用 DatagramPacket 類的 receive()方法接收 UDP 包。

1.DatagramPacket類

????????javanet 包的 DatagramPacket 類用來表示數據包。DatagramPacket 類的構造方法如下:

DatagramPacket(byte[] buf, int length)DatagramPacket(byte[] buf, int length, InetAddress address, int port)

2.DatagramSocket類

????????java.net 包中的 DatagramSocket 類用于表示發送和接收數據包的套接字。該類的構造方法如下:

DatagramSocket()DatagramSocket(int port)DatagramSocket(int port, InetAddress addr)

3.UDP網絡程序設計

????????根據前面所講的網絡編程的基本知識以及 UDP 網絡編程的特點,下面創建一個廣播數據報程序廣播數據報是一項較新的技術,其原理類似于電臺廣播。廣播電臺需要在指定的波段和頻率上廣播息,收聽者也要將收音機調到指定的波段、頻率,才可以收聽廣播內容。

例3.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/207947.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/207947.shtml
英文地址,請注明出處:http://en.pswp.cn/news/207947.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

邏輯漏洞與越權

邏輯漏洞與越權 越權 如果使用A用戶的權限去操作B用戶的數據,A的權限小于B的權限,如果能夠成功操作,則稱之為越權操作。 越權漏洞形成的原因是后臺使用了 不合理的權限校驗規則導致的。 一般越權漏洞容易出現在權限頁面(需要登…

掌握VUE中localStorage的使用

文章目錄 🍁localStorage的使用🌿設置數據🌿獲取數據🌿更新數據🌿刪除數據 🍁代碼示例🍁使用場景🍁總結 localStorage是一種Web瀏覽器提供的本地存儲機制,允許開發者在用…

java中ReentrantLock的實現原理是什么?

ReentrantLock 的實現原理主要涉及到兩個關鍵概念:同步器(Sync)和 AQS(AbstractQueuedSynchronizer,抽象隊列同步器)。 ReentrantLock 使用 AQS 來實現可重入鎖的機制。AQS 是 Java 并發包中的一個抽象基類…

周星馳 互聯網3.0 團隊下個月將上線獨立 App

2023年12月7日,新浪科技報道指出,周星馳旗下的互聯網3.0團隊透露,Moonbox,這家周星馳創立的互聯網3.0初創公司,計劃在明年1月份完成Moonbox App的上線,屆時該應用將免費向用戶提供服務。 目前,…

C現代方法(第25章)筆記——國際化特性

文章目錄 第25章 國際化特性25.1 <locale.h>: 本地化25.1.1 類項25.1.2 setlocale函數25.1.3 localeconv函數 25.2 多字節字符和寬字符25.2.1 多字節字符25.2.2 寬字符25.2.3 Unicode和通用字符集25.2.4 Unicode編碼25.2.5 多字節/寬字符轉換函數25.2.6 多字節/寬字符串轉…

Academic accumulation|行政管理方向的文章

一、評西方的“新公共管理”范式 文獻來源&#xff1a;[1]陳振明.評西方的“新公共管理”范式[J].中國社會科學,2000(06):73-82207. 下載鏈接&#xff1a;https://pan.baidu.com/s/1M1jDT-5tsJ0ES46j4pb7Cg 提取碼&#xff1a;mj54 在當代西方政府改革浪潮的沖擊下 ,世紀之交的…

zotero關閉翻譯自動創建標簽

zotero中文社區&#xff1a;https://plugins.zotero-chinese.com/#/

代碼遷移到gltlab倉庫,包含全部分支和提交記錄

老倉庫所有分支都完整拉取 git clone --mirror 原倉庫地址文件名&#xff1a;xxx.git 進入下載的目錄&#xff0c;設置新的倉庫地址 git remote set-url origin 新倉庫地址推送到新倉庫 git push -f origin --mirror問題一&#xff1a;remote: GitLab: The default branch …

Jmeter用于接口測試中,關聯如何實現

Jmeter用于接口測試時&#xff0c;后一個接口經常需要用到前一次接口返回的結果&#xff0c;應該如何獲取前一次請求的結果值&#xff0c;應用于后一個接口呢&#xff0c;拿一個登錄的例子來說明如何獲取。 1、打開jmeter, 使用的3.3的版本&#xff0c;新建一個測試計劃&#…

acme.sh自動配置免費SSL泛域名證書并續期(Aliyun + Debian + nginx)

acme.sh自動配置免費SSL泛域名證書并續期&#xff08;Aliyun Debian nginx&#xff09; 以前使用Certbot自動配置SSL證書&#xff0c;需要安裝snap管理器再安裝Certbot&#xff0c;期間還要去找AliDNS腳本&#xff0c;比較麻煩。如果不想如此&#xff0c;推薦使用acme.sh自動…

maven學習筆記總結

目錄 一、maven簡介 二、GAVP屬性 三、基于 IDLE 的 Maven 工程創建 1&#xff09;java標準工程&#xff08;Javase&#xff09;的創建 2&#xff09;java企業工程&#xff08;Javaee&#xff09;的創建 a&#xff09;手動創建 b&#xff09;插件方式創建&#xff08;fil…

數據結構與算法(六)分支限界法(Java)

目錄 一、簡介1.1 定義1.2 知識回顧1.3 兩種解空間樹1.4 三種分支限界法1.5 回溯法與分支線定法對比1.6 使用步驟 二、經典示例&#xff1a;0-1背包問題2.1 題目2.2 分析1&#xff09;暴力枚舉2&#xff09;分支限界法 2.3 代碼實現1&#xff09;實現廣度優先策略遍歷2&#xf…

力扣題:字符的統計-12.4

力扣題-12.4 [力扣刷題攻略] Re&#xff1a;從零開始的力扣刷題生活 力扣題1&#xff1a;657. 機器人能否返回原點 解題思想&#xff1a;進行統計即可 class Solution(object):def judgeCircle(self, moves):""":type moves: str:rtype: bool""&qu…

GeoPandas初體驗:它是什么,我用它展示一下shp矢量數據

GeoPandas 是一個開源的 Python 庫&#xff0c;用于處理地理空間數據。它擴展了 Pandas 這個流行的 Python 數據操作庫&#xff0c;增加了對地理數據類型和操作的支持。GeoPandas 結合了 Pandas、Matplotlib 和 Shapely 的功能&#xff0c;提供了一個易于使用且高效的工具&…

c語言實例:計算并輸出一個整數數組的平均值

大家好&#xff0c;今天給大家介紹一個c語言實例&#xff1a;計算并輸出一個整數數組的平均值&#xff0c;文章末尾附有分享大家一個資料包&#xff0c;差不多150多G。里面學習內容、面經、項目都比較新也比較全&#xff01;可進群免費領取。 以下是一個使用C語言實現的實例&am…

Day18——JDK新特性

1.JDK8的新特性 1.1 Lambda表達式 1.1.1 舉例 public class LambdaTest {Testpublic void test1(){Runnable r1 new Runnable() {Overridepublic void run() {System.out.println("test1");}};r1.run();//Lambda表達式的寫法Runnable r2 () ->{System.out.pr…

怎么將用戶引流到你的私域中?

微信私域運營是一種利用微信平臺建立與用戶深度聯系的營銷方式&#xff0c;可在私域中觸達并服務用戶。 那么如何將在將用戶引流至你的私域中呢&#xff1f; 可以從以下幾個小方法入手。 ①打造一個吸引人的個人品牌形象非常重要。在社交媒體上展示真實、獨特、專業的一面&a…

喜訊!云起無垠上榜《成長型初創企業推薦10強》

近期&#xff0c;由中國計算機學會抗惡劣環境計算機專業委員會、信息產業信息安全測評中心和安全牛聯合發起的第十一版《中國網絡安全企業100強》榜單正式發布。在這份備受關注的榜單中&#xff0c;云起無垠憑借其創新的技術能力&#xff0c;榮登《成長型初創企業推薦10強》榜單…

網絡知識學習(筆記三)(傳輸層的TCP)

前面已經介紹了傳輸層的UDP協議的報文以及一下相關的知識點&#xff0c;本次主要是傳輸層的TCP協議&#xff0c;包括TCP報文的詳細介紹&#xff1b;可靠傳輸、流量控制、擁塞控制等&#xff1b;建立連接、釋放連接。 一、TCP基本知識點介紹 1.1、TCP協議的幾個重要的知識點 …

網安領域含金量最高的證書有哪些?看這1篇就足夠了!

文章目錄 一、前言二、CISP三、CISAW四、NISP五、為什么很多人考不下來 一、前言 現在想找網絡安全之類的工作&#xff0c;光有技術是不夠的&#xff0c;還得有東西證明自己&#xff0c;網安三大敲門磚&#xff1a;CTF、漏洞證明和專業證書。 對于CTF的話只是少數人能參加的&…