原创 淺談P2P終結者原理及其突破

  P2P終結者按正常來說是個很好的網管軟件,但是好多人卻拿它來,惡意的限制他人的流量,使他人不能正常上網,下面我們就他的功能以及原理還有突破方法做個詳細的介紹! 我們先來看看來自在網上PSP的資料:P2P終結者是由Net.Soft工作室

原创 BT協議分析

一 BT系統的組成結構   1 普通的Web服務器:   例如Apache或IIS服務器 2 一個靜態的種子文件:   即.Torrent文件,採用Bencoding編碼 3  Tracker服務器:        追蹤下載同一文件的用

原创 車票出售系統——多線程

#include <windows.h>using namespace std;DWORD WINAPI Fun1Proc(LPVOID lpPara

原创 windows進程間通信

  <script> var $tag=''; var $tag_code='990cad2eb1081e9384e6914c04fce99a'; </script>

原创 FD_SET預定義宏

概述:在XFree86的實現中,爲了屏蔽在不同的平臺下對fd操作上的差異。通過條件編譯的技術重新定義了一類對fd操作的宏。如下: FD_SET(n,p)   // 在fd_set中設置一個fdFD_CLR(n,p)   // 在fd_se

原创 boost::thread線程創建方式總結

最近在做一個消息中間件裏面涉及到多線程編程,由於跨平臺的原因我採用了boost線程庫。在創建線程時遇到了幾種線程創建方式現總結如下:    首先看看boost::thread的構造函數吧,boost::thread有兩個構造函數: (1)

原创 關於unicode,mbcs,utf8,charset,encoding等相關概念的說明

好像第一次遇到跟字符集有關的問題大概應該是在7年前,第一次寫java,總是會出現編碼轉換的問題,動不動就亂碼,基本上,本着實用主義的態度,以盲人摸象的手法,總算是能夠解決問題的。這些年來,不停的會遇到編碼方

原创 關於Linux下時間編程的問題

    1. Linux下與時間有關的結構體 struct timeval { int tv_sec; int tv_usec; }; 其中tv_sec是由凌晨開始算起的秒數,tv_usec則是微秒(10E-6 second)

原创 Windows下程序向Linux下移植實踐

一、問題的提出     在程序員中有這樣一個說法,若一個程序不能移植到Linux下,那這個程序將看不到未來。 由於Linux操作系統源碼公開是的,開發庫等輔助工具都是源碼公開的,這樣就減少了程序的不可預知性,而且出現錯誤可以大家一起修正

原创 Libtorrent源代碼閱讀小札

  ses.start_dht()->ses_imp.start_dht(),session_impl是session的實現。跟蹤進去,m_dht = new dht::dht_tracker(m_io_service, m_dht_

原创 Socket send函數和recv函數詳解

  int send( SOCKET s,      const char FAR *buf,      int len,      int flags );   不論是客戶還是服務器應用程序都用send函數來向TCP連接的另一端發送

原创 HTTP Range頭域

  Range頭域   Range頭域可以請求實體的一個或者多個子範圍。例如,   表示頭500個字節:bytes=0-499   表示第二個500字節:bytes=500-999   表

原创 關於閱讀源代碼

      閱讀源代碼對於程序員來說是提高技術實力和業務知識最好的方法,那麼我們怎樣閱讀源代碼就是我們 首先要解決的問題。       閱讀源代碼就像管理一家大的公司,關鍵在於管理者卓越的領導意識。作爲閱讀源代碼的人也應該有良好的意識,在

原创 MySQL觸發器解決方案歷程

  最近,項目中用到mysql,由於數據量非常大,每天的數據量在百萬級,考慮到mysql數據庫處理性能以及數據屬性,決定保存足夠多的查詢數據即可,距當前時間最久遠的數據直接刪除,無需進行備份。   頭腦中冒出的第一個想法就是,能否利用my

原创 Sleep和WaitForSingleObject ,WaitForMultipleObjects

 VOID Sleep(DWORD dwMilliseconds); 該函數可使線程暫停自己的運行,直到dwMilliseconds過去爲止。 關於Sleep函數,有下面幾個重要問題值得注意: * 調用Sl