原创 公司局域網上ping www.qq.com

首先,ping使用了協議ICMP ICMP的一個重要應用就是分組間探測PING,用來檢測兩主機間的連通性 ping使用了ICMP回送請求和回送回答報文,是應用層間使用網絡層ICMP的一個例子,並沒有通過運輸層的TCP/UDP pi

原创 bash中,1>&2是什麼意思?

文件描述符 每打開一個文件都有一個整數與之對應,這個整數就是文件描述符【0、1、2】 0:標準輸入(stdin) 1:標準輸出(stdout) 2:標準報錯輸出(stderr) 重定向符 >:輸入重定向符 <:輸出重定向符

原创 指針——Linux一站式學習

概念 對於棧頂指針,隊列頭尾指針而言,這裏的指針本質上是一個整數,是數組的索引,通過指針訪問數組的某元素; 還有一種概念:把一變量所在的內存單元的地址保存在另一個內存單元中,這個內存單元就是指針,通過指針訪問變量【變量的地址在編譯

原创 空間配置器(SGI-STL)

理解 是一種管理空間的機制,對空間進行分配、回收 重要性:整個STL的操作對象都存放在容器中,容器需要配置空間置放數據。空間配置器爲各容器實現了對空間的高效管理 爲什麼不直接用new/delete? 用戶自己管理空間,容易內存泄

原创 socket實現UDP網絡通信程序

首先回顧socket套接字編程: socket就是一套網絡編程接口:上層用戶通過這些接口簡單地完成網絡通信傳輸不需要關心內部實現【類似中間件】 五元組:(源IP地址,源端口,目的IP地址,目的端口,協議),用於標識數據,每個網絡中

原创 volatile限定符

作用:防止編譯器過度優化 編譯器過度優化對生成指令有什麼影響?觀察代碼: //模擬設備寄存器 unsigned char recv; unsigned char send; //緩衝區 unsigned char buf[3];

原创 哲學家就餐問題——信號量/管程

問題 應用程序中包含併發線程的執行時,協調處理共享資源的代表性問題 五位哲學家住在一座房子,他們面前有一張餐桌,每個哲學家生活中只有思考和吃飯。經多年思考,哲學家們認爲最有助於思考的事物是意大利麪。因缺乏手工功能,每位哲學家需要用

原创 編譯和鏈接——程序員的自我修養

常用的開發環境如Visual Studio、Delphi,是集成開發環境,在集成開發環境中,將編譯鏈接合併到一起一步完成,其合併到一起的過程稱爲構建 雖然集成開發環境及編譯器提供的默認配置、編譯與鏈接參數提供的功能足以強大,但其隱

原创 STL總結

三種容器適配器: 種類 stack queue priority_queue 默認順序容器 deque deque vector 可用順序容器 vector、list、deque list、deque vect

原创 項目:表情包生成器

功能分析 由用戶選擇用圖片或是視頻來生成Gif。 用戶在選擇後輸入文件所在目錄,若是圖片,直接生成動態圖;若是視頻,截取視頻片段,提取視頻裸流,直接生成Gif或提取視頻字幕【視頻中的字幕必須是外掛字幕,否則使用的工具無法提取】由用

原创 Linux網絡編程基礎API——Linux高性能服務

socket地址API 主機字節序和網絡字節序 字節序問題:(32位機)現代CPU累加器一次能裝載4字節【一個整數】,這4字節在內存中的排列順序會影響其被累加器裝載成整數的值 字節序分爲大端字節序和小端字節序: 字節序 大端

原创 信號

首先,信號量與信號是完全不同的兩個概念 進程信號 理解 作用:操作系統通知進程發生某事件,需打斷當前進程去處理該事件。相當於軟件中斷 事件是多種多樣的,因此信號也是多種多樣的。 kill命令: 查看操作系統中所有定義好的信號種類

原创 關於TCP協議的麪筋整理

TCP和UDP的特徵及區別、分別適用於那些場景 特徵 TCP:面向連接、面向字節流、提供擁塞控制、全雙工、一對一通信、首部開銷大(固定首部20字節)、提供可靠交付服務 UDP:無連接、面向報文、無擁塞控制、支持一對一、一對多、多

原创 TCP協議詳解——Linux高性能服務器

TCP協議較IP協議更爲接近應用層,在應用程序中有更強的可操作性。 傳輸層協議主要有兩個:TCP、UDP。 TCP服務的特點 面向連接、字節流和可靠傳輸 面向連接:使用TCP協議通信雙方要先建立連接才能開始數據的讀寫。連接雙方都要