原创 TCP之socket編程

socket(套接字):IP地址+端口號,唯一標識網絡中的一個進程socket編程中建立連接的兩個進程都有一個socket來標識唯一一個連接。網絡字節序:網絡數據流有大小端之分,發送主機通常將發送緩衝區中的數據按內存地址從低到高的順序發出,

原创 UDP之socket編程

UDP:用戶數據報協議,它不提供可靠傳輸,只負責數據傳輸,是無連接的服務器端:因udp是無連接的,因此不用將套接字設爲監聽狀態1.創建套接字使用socket(int domain,int type,int protocol)函數2.將套接字

原创 我的友情鏈接

小止

原创 搜索二叉樹

 二叉搜索樹所具有的性質:每個節點都有一個作爲搜索依據的關鍵碼(key),所有節點的關鍵碼互不相同。左子樹上所有節點的關鍵碼(key)都小於根節點的關鍵碼(key)。右子樹上所有節點的關鍵碼(key)都大於根節點的關鍵碼(key)。每一個左

原创 數據庫相關概念

數據庫事務:是指作爲單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。 事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向數據的資源。通過將一組相關操作組合爲一個要麼全部成功要麼全部失敗的單元,可以

原创 模擬實現STL中的list

list不支持隨機訪問,不是線性連續存儲,不能重載operator[],需要自定義它的迭代器list的插入操作不會產生迭代器失效,刪除操作會是指向被刪除元素位置的迭代器實效,其它不受影響,而在vector中會造成後續迭代器失效#pragma

原创 AVL樹增刪查找

AVL樹:又稱高度平衡的二叉搜索樹,它能保持二叉樹的高度平衡,儘量降低二叉樹的高度,減少樹的平均搜索長度。AVL樹的性質左子樹和右子樹的高度之差的絕對值不超過1樹中的每個左子樹和右子樹都是AVL樹#pragma once #include

原创 多路複用之select、epoll、poll

IO的多路複用:一個進程可以監視多個描述符,一旦某個描述符讀就緒或寫就緒,能夠通知進程程序進行相應的讀寫操作使用場景:1.當客戶處理多個描述符(網絡套接口)或一個客戶同時處理多個套接口2.TCP服務器既要處理監聽套接口又要處理已經連接的套接

原创 高級IO中socketpair實現進程間通信以及重定向

sockpair實現進程間通信我們以前學習的利用管道(此處爲匿名管道)實現進程間通信,只能是單向的,一邊只能讀而另一邊只能寫,且只能在有血緣關係的進程間才能通信,若想實現雙向通信就必須創建雙向管道,而sockpair它的實現就是雙向管道進行

原创 shell腳本編程練習

在shell腳本中建立循環,將echo內容重定向追加到一個文件中之前file文件爲空,運行腳本後內容爲在shell腳本中創建數組結果:使用三種循環方式遍歷數組,直接使用圓括號對數組內容進行初始化1.${#arr[@或者*]}表示該數組中元素

原创 UDP暢聊系統簡單版本

帶有數據存儲的模型圖總體的框架server中udp_server.h其中add_user函數爲添加新上線用戶信息 1 #pragma once   2 #include <iostream>   3 #include <map>   4 u

原创 UDP暢聊系統數據的序列化與反序列化

comm中實現基本數據的序列化與反序列化基於jsoncpp庫,由c++編寫,用於爲網絡數據提供序列化及反序列化功能使用的幾個類Json::Value 可表示所有的類型,int,float,string等Json::Reader 將json字

原创 紅黑樹的插入及查找

紅黑樹:首先是一棵二叉搜索樹,它在每個節點上增加了一個存儲位來表示節點的顏色,可以是Red或Black。通過對任何一條從根到葉子簡單路徑上的顏色來約束,紅黑樹保證最長路徑不超過最短路徑的兩倍,因而近似於平衡。紅黑樹滿足的性質:根節點是黑色的

原创 數據庫相關概念

數據庫事務:是指作爲單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。 事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向數據的資源。通過將一組相關操作組合爲一個要麼全部成功要麼全部失敗的單元,可以

原创 sed工具的使用

sed:流式編輯器,把前一個程序的輸出結果引入sed的輸入,經過一系列編輯命令轉換爲另種格式輸出命令的基本格式:sed option 'script' file1 file2 ...sed option -f scriptfile file