網絡端

1.synchronized 同步鎖
同步方法:
成員|靜態
簡單,但是鎖的范圍一般可能較大,效率低
同步塊
類的class:相當于鎖了類的整個信息|所有對象
this:鎖當前對象,鎖了這個對象的所有資源
資源:一般鎖不變的內容--對象地址
鎖的范圍太大效率低,鎖的范圍太小可能鎖不住
鎖一定要鎖不變的內容

死鎖:
需要避免鎖使用的過于頻繁,遇到對象無法釋放的情況,否則出現死鎖的問題

2.線程通信(生產者消費者模式)
wait():線程處于等待狀態
釋放對象的鎖,cpu的資源
notify():喚醒對方正在處于等待池中的線程
沒有對象的資源,就算是被喚醒也無法執行,必須要獲取到對象的鎖才能有資格執行
notifyAll()
喚醒全部
注意:使用在一個同步的環境下

3.IP:定義網絡上的節點(電腦,手機,pad,路由器...)..區分節點
分類:
IPV4 : 32位
IPV6 : 128位

特點的IP:
局域網內部IP:192.168.0.0~192.168.255.255
127.0.0.1 : 默認本地IP
localhost : 本地域名
DNS服務器:解析IP和域名之間的關系

InetAddress 此類表示互聯網協議 (IP) 地址。
static InetAddress getLocalHost() 返回本地主機。
static InetAddress getByName(String host) 在給定主機名的情況下確定主機的 IP 地址。

String getHostName() 獲取此 IP 地址的主機名。
String getHostAddress() 返回 IP 地址字符串(以文本表現形式)。

端口: InetSocketAddress

4. 端口port:區分軟件...
2個字節: 0~65535
注意:
1.同一的協議下端口號不能沖突
2.自定義設置端口號建議設置越大越好,一般8000網上
預留端口號:
80: http
8080:tomcat
1521:Oracle
3306:Mysql

InetSocketAddress 此類實現 IP 套接字地址(IP 地址 + 端口號)。
InetSocketAddress(String hostname, int port) 根據IP|域名+端口號構建
InetAddress getAddress() 獲取 InetAddress。
String getHostName() 獲取 hostname。
int getPort() 獲取端口號。

5.URL:統一資源定位符
互聯網三大基石: http html url
url的構成:
協議
域名
端口
資源
數據
"http://www.baidu.com:80/index.html?name=zhangsan&pwd=123#a"

URL(String spec) 構建url

6-1.Socket套接字: 傳輸層為應用層開辟的小口子,通過 Socket進行發送和接收數據
不同協議下的socket實現不同
面向Socket編程

tcp: 面向連接 打電話 安全 開銷大 基于3次握手 大小沒有限制 . 基于流傳輸
udp: 非面向連接 寫信|發短信 只管寫只管發 開銷小,效率高 不安全 大小有限制 一般不超過60k , 基于字節數組傳輸

基于udp的socket編程:
發送端
接收端
DatagramSocket 此類表示用來發送和接收數據報包的套接字。(定義發送端|接收端)
DatagramPacket數據報包(數據打包)

udp實現發送端的基本流程: 發送端和服務端是平等的
1.定義發送端 DatagramSocket(端口號) 指定發送端的端口號
2.準備數據
3.對數據打包 DatagramPacket(byte[] buf, int offset, int length, InetAddress address, int port)
構造數據報包,用來將長度為 length 偏移量為 offset 的包發送到指定主機上的指定端口號。
4.發送void send(DatagramPacket p)
5.關閉 void close() 關閉此數據報套接字。

6-2.接收端基本流程:
1.定義接收端 DatagramSocket(int port)
2.準備字節數組
3.準備包裹用來接收數據 DatagramPacket(byte[] buf, int length)
4.接收
5.從包裹中獲取數據
byte[] getData()
返回數據緩沖區。
int getLength()
返回將要發送或接收到的數據的長度。
6.關閉

7-1.Socket 此類實現客戶端套接字
客戶端
1.定義客戶端 Socket(String host, int port) 創建一個流套接字并將其連接到指定主機上的指定端口號。
2.IO操作
輸出流OutputStream getOutputStream() 返回此套接字的輸出流。
3.刷出
4.關閉
7-2.ServerSocket 此類實現服務器套接字。
TCP服務端
1.定義服務端 ServerSocket(int port) 創建綁定到特定端口的服務器套接字。
2.阻塞式監聽 一個客戶端連接成功,就是一個socket
3.io操作
4.關閉

8-1.TCP實現文件上傳客戶端 :
1.定義客戶端 Socket(String host, int port) 創建一個流套接字并將其連接到指定主機上的指定端口號。
2.IO操作 先從文件中讀入數據-->寫出數據
new FileInputStream("");
輸出流OutputStream getOutputStream() 返回此套接字的輸出流。
3.刷出
4.關閉
8-2.TCP實現文件上傳服務端:
1.定義服務端 ServerSocket(int port) 創建綁定到特定端口的服務器套接字。
2.阻塞式監聽 一個客戶端連接成功,就是一個socket
3.io操作 :從客戶端讀入數據 --->文件輸出流 寫出文件中
4.刷出
5.關閉

轉載于:https://www.cnblogs.com/jj-01/p/11210332.html

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

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

相關文章

BZOJ2690: 字符串游戲(平衡樹動態維護Dfs序)

Description 給定N個僅有a~z組成的字符串ai,每個字符串都有一個權值vi,有M次操作,操作分三種:Cv x v:把第x個字符串的權值修改為vCs x a:把第x個字符串修改成aQ:求出當前的最大權字符串集合,使得這個集合中的字符串經過重新排列后滿足除最后一…

【第一趴】初探uni-app(uni-app發行者、uni-app推出背景、為什么選擇uni-app)

文章目錄寫在前面DCloud當下跨平臺開發存在的問題為什么選擇uni-app寫在最后寫在前面 聚沙成塔——每天進步一點點,大家好我是幾何心涼,不難發現越來越多的前端招聘JD中都加入了uni-app 這一項,它也已經成為前端開發者不可或缺的一項技能了&…

Rocket - tilelink - Atomics

https://mp.weixin.qq.com/s/TSwKL_qm-b-0e8x7r--hhg 簡單介紹Atomics中數學運算、邏輯運算的實現。??1. ioAtomics是一個硬件模塊,他繼承自Modules:??IO端口定義如下:??其中:a. write: 是否寫操作;b. a&#xf…

Spark streaming java代碼

待做轉載于:https://www.cnblogs.com/drjava/p/10464388.html

【第二趴】uni-app開發工具(手把手帶你安裝HBuilderX、搭建第一個多端項目初體驗)

文章目錄 寫在前面HBuilderXHBuilderX 優勢HBuilderX 安裝uni-app 初體驗寫在最后寫在前面 聚沙成塔——每天進步一點點,大家好我是幾何心涼,不難發現越來越多的前端招聘JD中都加入了uni-app 這一項,它也已經成為前端開發者不可或缺的一項技能了,所以涼哥為大家推出 聚沙成…

“勤學會”火爆來襲

文章目錄勤學會是什么?勤學會存在的意義是什么強大的助學團勤學會如何幫助大家學習參與勤學會能得什么獎品專屬C計劃加入勤學會勤學會是什么? 他來了他來了,其實兩個月前勤學會的概念產品就已經出現了,只不過因為了 1024 大型活動…

LeetCode -- 204. Count Primes

題目標簽 HashTab(哈希表) 題意及思路 題意:略 思路:有關素數的題目我所知道有兩種做法。一種是最基本的isPrime算法,關鍵點在循環判斷時,上限為Math.sqrt(n) (求n是否為素數)。另外…

如何尋找無序數組中的第K大元素?

如何尋找無序數組中的第K大元素? 有這樣一個算法題:有一個無序數組,要求找出數組中的第K大元素。比如給定的無序數組如下所示: 如果k6,也就是要尋找第6大的元素,很顯然,數組中第一大元素是24&am…

【第三趴】uni-app頁面搭建與路由配置(了解工程目錄結構、學會搭建頁面、配置路由并成功運行)

文章目錄 寫在前面工程結構新頁面呈現寫在最后本期推薦寫在前面 聚沙成塔——每天進步一點點,大家好我是幾何心涼,不難發現越來越多的前端招聘JD中都加入了uni-app 這一項,它也已經成為前端開發者不可或缺的一項技能了,所以涼哥為大家推出 聚沙成塔【45天玩轉uni-app】專欄…

測試MongoDB的自動分片

MongoDB的自動分片: test庫分片配置: db.shards.find(){ "_id" : "shard0000", "host" : "127.0.0.1:29017", "state" : 1 }{ "_id" : "shard0001", "host" : "1…

線上CPU飚高(死循環,死鎖……)?幫你迅速定位代碼位置

top基本使用: top命令參考本篇文章 查看內存和CPU的top命令,別看輸出一大堆,理解了其實很簡單 top 命令運行圖: 第一行:基本信息 第二行:任務信息 第三行:CPU使用情況 第四行:物理內…

zookeeper watch筆記

ZK其核心原理滿足CP, 實現的是最終一致性, 它只保證順序一致性. zookeeper 基于 zxid 以及阻塞隊列的方式來實現請求的順序一致性。如果一個client連接到一個最新的 follower 上,那么它 read 讀取到了最新的數據,然后 client 由于網絡原因重新連接到 zoo…

洛谷 P1352 沒有上司的舞會

洛谷 P1352 沒有上司的舞會 Description 某大學有N個職員,編號為1~N。他們之間有從屬關系,也就是說他們的關系就像一棵以校長為根的樹,父結點就是子結點的直接上司。現在有個周年慶宴會,宴會每邀請來一個職員都會增加一定的快樂指…

單機簡單搭建一個kafka集群(沒有進行內核參數和JVM的調優)

1.JDK安裝 在我的部署單節點kafka的博客里有相關的方法。(https://www.cnblogs.com/ToBeExpert/p/9789486.html )zookeeper和kafka的壓縮包下載地址也在單節點部署的這篇博客里。 1.zookeeper集群的搭建 將zookeeper.tar.gz解壓為三個目錄,例…

[翻譯]三張卡片幫你記住TDD的基本原則

原文地址:http://blog.briandicroce.com/2008/03/14/three-index-cards-to-easily-remember-the-essence-of-test-driven-development/ 當我瀏覽ObjectMentor的博客的時候,其中一篇Tim Ottinger的“TDD on Three Index Cards”引起了我的注意。他回憶了他…

異常 try catch finally return 執行關系 MD

Markdown版本筆記我的GitHub首頁我的博客我的微信我的郵箱MyAndroidBlogsbaiqiantaobaiqiantaobqt20094baiqiantaosina.com異常 try catch finally return 執行關系 MD 目錄 目錄探討finally語句的執行與return的關系探討finally語句的執行與return的關系 Java異常捕獲機制try.…

Java數據結構之線性表(2)

從這里開始將要進行Java數據結構的相關講解,Are you ready?Lets go~~ java中的數據結構模型可以分為一下幾部分: 1.線性結構 2.樹形結構 3.圖形或者網狀結構 接下來的幾張,我們將會分別講解這幾種數據結構,主要也是通過Java代碼的…

涼哥核心圈程序員必備十大圖書推薦(一)

寫在前面 涼哥核心圈程序員必備十大圖書推薦(一),各位伙伴應該一目了然了哈,沒錯涼哥準備出一系列圖書推薦的文章,其實很多朋友在私下問涼哥除了大學的課程外自己要不要讀一些技術類的書籍呢,答案當時要的…

了解大數據的特點、來源與數據呈現方式

本次作業來源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2639 1.瀏覽2019春節各種大數據分析報告,例如: 這世間,再無第二個國家有能力承載如此龐大的人流量。http://www.sohu.com/a/290025769_313993春節人口遷…

MYSQL中只知表名查詢屬于哪個SCHEMA

只知道表名XXX查該表屬于哪個schema、以及該表有哪些列等信息SELECT * from information_schema.columns WHERE table_name xxx; 只知道列名XXX查哪個schema有該列、以及有列名為XXX的表有哪些等SELECT * from information_schema.columns WHERE column_name XXX;參考鏈接&am…