1. 程式人生 > >最新Socket網路程式設計進階與實戰

最新Socket網路程式設計進階與實戰

第1章 課程導學(Java語言教學)
【說明:課程案例部分以Java語言實現】本章節首先會對課程進行導學講解,包括為什麼應該學習本課程,課程目標與收穫,課程內容安排,適合人群和學習建議等,接著會講解程式碼規範與開發注意事項,目的全在於希望極大的方便同學進行本課程的學習。...

1-1 課前必讀(不看會錯過一個億)
1-2 課程導學(課前必看)

第2章 Socket網路程式設計快速入門
本章首先整體介紹什麼是Socket網路程式設計;讓大家對Socket有個大概的概念與方向。之後通過幾個小Case引出課程的主角,輕鬆愉快的讓你體驗到Socket程式設計的快感。本章節主要收穫:1. 明白什麼是網路程式設計,2. 理解Socket與TCP、UDP的關係 3. 明白網路傳輸中的報文、協議、Mac、IP以及埠的定義等。 ...



2-1 什麼是網路程式設計?
2-2 Socket與TCP、UDP
2-3 Socket TCP牛刀小試-客戶端實現
2-4 Socket TCP牛刀小試-服務端實現
2-5 報文、協議、Mac地址
2-6 IP、埠及遠端伺服器

第3章 Socket UDP快速入門
UDP是Socket中的重要組成部分;在本章節中帶領大家瞭解什麼是UDP,以及明白可以用UDP來做什麼。本章節主要收穫:1. 明白UDP是什麼,2. UDP的主要作用, 3. UDP的簡單用法以及API學習,4. 理解網路中的單播、廣播、多播等概念與技術實現 ...

3-1 UDP是什麼
3-2 UDP核心API講解
3-3 UDP單播、廣播、多播-1

3-4 UDP單播、廣播、多播-2
3-5 案例實操-區域網搜尋案例-1
3-6 案例實操-區域網搜尋案例-2
3-7 案例實操-區域網搜尋案例-3

第4章 Socket TCP快速入門
TCP可以說是Socket的最重要組成,同時也是網路傳輸的基礎;有了TCP基石才有如今穩定的網路傳輸。本章節讓大家明白TCP的重要性,同時學會利用TCP進行簡單的資料傳輸。本章節主要收穫:1. 明白TCP是什麼,理解TCP的重要性,2. 學會TCP的精髓以及API使用,3. TCP的連線可靠性原理,4. TCP的傳輸可靠性原理,5. 學會利用TC...

4-1 TCP是什麼、能做什麼
4-2 TCP核心API講解
4-3 TCP連線可靠性-三次握手、四次揮手

4-4 TCP傳輸可靠性-排序、丟棄、重發
4-5 案例實操-TCP傳輸初始化配置-1
4-6 案例實操-TCP傳輸初始化配置-2
4-7 案例實操-TCP基礎資料傳輸-1
4-8 案例實操-TCP基礎資料傳輸-2

第5章 UDP輔助TCP實現點對點傳輸案例
前面我們學習了UDP、TCP,本章節中將利用UDP 的發現進行TCP連線建立點對點資料傳輸,同時讓大家理解並實現資料收發並行。本章節主要收穫:1. UDP如何與TCP結合使用,2. UDP與TCP的主要職責劃分,3. 傳輸資料如何做到並傳輸,4. 學會利用多執行緒解決阻塞與並行的案例 。 ...

5-1 UDP搜尋IP與埠-1
5-2 UDP搜尋IP與埠-2
5-3 點對點傳輸實現
5-4 資料傳送與接收並行-1
5-5 資料傳送與接收並行-2
5-6 資料傳送與接收並行-3

第6章 簡易聊天室案例
一對多聊天室模型是經典不衰的案例,這樣的架構也可稱為CS模型;在這樣的模型中有服務器端充當所有的資料傳輸與轉送操作;但同時也會給伺服器帶來巨大的壓力。在本章節你將學習到一個聊天室的搭建,同時能明白服務器的壓力優化策略。 本章節主要收穫:1. 聊天室基礎設計,2. 聊天室中服務器設計方案,3. 聊天室服務器數...

6-1 聊天室資料傳輸設計
6-2 聊天室訊息接收實現
6-3 聊天室訊息轉發實現
6-4 伺服器狀態與測試用例構建-1
6-5 伺服器狀態與測試用例構建-2
6-6 伺服器效能分析與壓測
6-7 伺服器效能總結與優化方案

第7章 伺服器傳輸優化-NIO
Socket在我們的認知中是高效的,在上章節中瞭解到一個Bad的設計是會搞崩服務器的。消耗資源多、 慢這都不應是咱們需要的;我們要的是高效能且極度簡單的傳輸模型。那麼在本章節中將帶你進入全新的領域“NIO”一個神祕而充滿魅力的技術方案。使用NIO進行伺服器的簡單優化,解決執行緒啟動太多的問題。本章節主要收穫:1. 明...

7-1 阻塞IO和⾮非阻塞IO
7-2 NIO Family一覽
7-3 NIO常⽤用API學習
7-4 NIO重寫伺服器-1
7-5 NIO重寫伺服器-2
7-6 NIO重寫伺服器-3
7-7 NIO伺服器Thread優化-1
7-8 NIO伺服器Thread優化-2
7-9 NIO伺服器Thread優化-3
7-10 NIO伺服器Thread優化-4
7-11 NIO伺服器Thread優化-5
7-12 NIO伺服器Thread優化-6
7-13 NIO知識歸納梳理

第8章 資料傳輸穩定性優化
在實際的測試中我們會發現:1. 當傳送資料足夠快時,服務器會因為訊息處理不及時引起訊息粘包的現象,2. 當業務層緩衝區大小不夠時將引起單訊息丟失不全的現象。 在本章節中我們借鑑HTTP的訊息體協議並簡化到Socket傳輸中,以便在客戶端與服務器上訊息不會出現粘包,不全等現象。本章節主要收穫:1. 明白什麼是粘包、消...

8-1 訊息不完整與訊息粘包
8-2 復現資料傳輸異常現象
8-3 傳輸分析-如何有序的混傳資料
8-4 傳輸分析-借鑑學習HTTP精髓
8-5 構建有序訊息體-排程介面定義
8-6 構建有序訊息體-基本傳送排程實現
8-7 構建有序訊息體-基本接收排程實現-1
8-8 構建有序訊息體-基本接收排程實現-2
8-9 訊息粘包與訊息不全測試

第9章 區域網檔案快傳技術實戰
茄子快傳、QQ快傳核心功能是如何實現的?本章節讓你明白這些你都能實現;甚至更好、更快!本章節主要收穫: 1. 檔案訊息與普通訊息的區別以及注意事項,2. 如何利用Socket傳送⽂件,3. 如何利用流(Stream)實現檔案與普通訊息的組合封裝,4. 如果利用範型實現對Packet、Frame的規則封裝,5. 檔案分片技術原理與實現...

9-1 混傳資料總結與梳理
9-2 檔案傳輸與普通傳輸的區別
9-3 檔案訊息模型基礎實現-1
9-4 檔案訊息模型基礎實現-2
9-5 檔案訊息模型基礎實現-3
9-6 傳送檔案到伺服器-1
9-7 傳送檔案到伺服器-2
9-8 傳送檔案到伺服器-3
9-9 訊息分片傳輸設計與實現-1
9-10 訊息分片傳輸設計與實現-2
9-11 訊息分片傳輸設計與實現-3
9-12 訊息分片傳輸設計與實現-4
9-13 訊息分片設計與實現-傳送排程-1
9-14 訊息分片設計與實現-傳送排程-2
9-15 訊息分片設計與實現-接收排程-1
9-16 訊息分片設計與實現-接收排程-2
9-17 檔案快傳收尾與總結


第10章 聊天室升級版實戰
一個完整的聊天室應具備優秀的訊息送達效率以及訊息傳輸的保障。實際開發難點在於如何合理分配訊息排程資源,並且如何知道客戶端當前的狀態以便進行客戶端的重連等機制。本章節主要收穫:1. 利用執行緒+佇列方案進行排程優化,2. 心跳保持為什麼需要做以及如何做,3. 如何傳送心跳包以及消費心跳包,4. 高效資料消費與線...

10-1 訊息排程分析
10-2 併發客戶端BUG修復與效能優化-1
10-3 併發客戶端BUG修復與效能優化-2
10-4 併發客戶端BUG修復與效能優化-3
10-5 資料三層緩衝區IoArgs排程優化
10-6 伺服器訊息排程邏輯規範化-1
10-7 伺服器訊息排程邏輯規範化-2
10-8 伺服器訊息排程邏輯規範化-3
10-9 伺服器訊息排程邏輯規範化-4
10-10 心跳包必要性與策略選擇
10-11 心跳包構建與消費排程-1
10-12 心跳包構建與消費排程-2
10-13 心跳包構建與消費排程-3

第11章 語音資料即時通訊實戰
近幾年,視訊語音直播可謂風生水起,其核心技術就是資料流實時傳輸;在本章節中著重講解語音聊天技術的實現,當然你也可以擴充套件為視訊聊天等。 在本章節中對資料代理橋接方案是重點,訊息發與傳輸最短送達方案也是難點。 本章節主要收穫:1. 理解即時語音聊天傳輸原理,2. “P2P”技術實現,3. 什麼是資料橋接,4. 如...

第12章 整體程式碼結構梳理與昇華
雖然我們實現了常見案例,但是程式碼應當追求複用與實用性。 本章節中帶來了新的知識點:資料優先順序排程與封裝、記憶體複用模型等等;這都是提升你技術的絕佳機會。本章節主要收穫:1. 審視自身,明白現有程式碼缺陷, 2. 如何實現排程中分優先順序排程,3. 瞭解高併發中記憶體的佔用問題,4. 學會記憶體複用的設計,5. 實現記憶體...

第13章 課程總結
本章節著重於總結Socket課程的全部知識點,同時展望後續的開發。 

 

 

 

下載地址:百度網盤