青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

學習、成長之路

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  16 Posts :: 0 Stories :: 27 Comments :: 0 Trackbacks

常用鏈接

留言簿

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

#

 1 BOOL CleanUrlCache(LPSTR lpUrl)
 2 {
 3     LPINTERNET_CACHE_ENTRY_INFO lpICEI = NULL;
 4     DWORD dwSize = 0;
 5     HANDLE hFind = FindFirstUrlCacheEntry(NULL, NULL, &dwSize);
 6     if (hFind == NULL && GetLastError() != ERROR_INSUFFICIENT_BUFFER)
 7         return FALSE;
 8     
 9     lpICEI = (LPINTERNET_CACHE_ENTRY_INFO)new char[dwSize];
10     hFind = FindFirstUrlCacheEntry(NULL, lpICEI, &dwSize);
11     if (hFind == NULL)
12     {
13         delete lpICEI;
14         return FALSE;
15     }
16     
17     do 
18     {
19         if (StrStrI(lpICEI->lpszSourceUrlName, lpUrl))
20         {
21             int bRet = DeleteUrlCacheEntry(lpICEI->lpszSourceUrlName);
22         }
23         delete lpICEI;
24         lpICEI = NULL;
25         dwSize = 0;
26         
27         if (!FindNextUrlCacheEntry(hFind, NULL, &dwSize) && GetLastError() != ERROR_INSUFFICIENT_BUFFER)
28             break;
29         lpICEI = (LPINTERNET_CACHE_ENTRY_INFO)new char[dwSize];
30     } while (FindNextUrlCacheEntry(hFind, lpICEI, &dwSize));
31     
32     if (lpICEI != NULL)
33         delete lpICEI;
34     return TRUE;
35 }
posted @ 2009-08-17 11:00 sToa 閱讀(676) | 評論 (0)編輯 收藏

最近做一個項目,需要記錄系統里每個進程訪問的IP及Port,然后提交到服務端進行分析,我的思路是用一個緩存文件記錄所有進程訪問網絡的信息,然后在主程序中提取記錄再提交。
這里面涉及到多進程訪問同一個緩存文件的同步問題,于是封裝了下面這個類,自我感覺良好,拿出來和大家分享 :)

* 使用類似于環形鏈表的機制來保證運行效率


測試程序如下:
 1 #include "RecodeLog.cpp"
 2 #include <stdio.h>
 3 #pragma pack(1)
 4 // 測試用結構,可自定義,結構中不應該包涵指針類型
 5 typedef struct _tagTestInfo
 6 {
 7     DWORD nTest;
 8     char szTest[32];
 9 }TESTINFO, *PTESTINFO;
10 #pragma pack()
11 
12 ULONG WINAPI TestThread(PVOID pParam)
13 {
14     TESTINFO ti; 
15     CRecodeLog<TESTINFO> *prl = new CRecodeLog<TESTINFO>("TestRL""c:\\trl.dat"1000);
16     for (int i = 0; i < 100; i++)
17     {
18         ti.nTest = i;
19         itoa(i, ti.szTest, 10);
20         // 可在任意進程或線程中調用該方法,不用考慮同步問題
21         prl->AddLog(&ti);    // 寫入到緩沖文件中
22     }
23     delete prl;
24     return 0;
25 }
26 
27 int main(int argc, char* argv[])
28 {
29     // 開兩個線程,每個線程增加100條記錄
30     HANDLE hThread, hThread2;
31     hThread = CreateThread(NULL, NULL, TestThread, NULL, NULL, NULL);
32     hThread2 = CreateThread(NULL, NULL, TestThread, NULL, NULL, NULL);
33     WaitForSingleObject(hThread, INFINITE);
34     WaitForSingleObject(hThread2, INFINITE);
35     CloseHandle(hThread);
36     CloseHandle(hThread2);
37 
38     
39     CRecodeLog<TESTINFO> *prl = new CRecodeLog<TESTINFO>("TestRL""c:\\trl.dat"1000);
40     TESTINFO getTi; 
41     int ncount = 0;
42     while (prl->GetTop(&getTi))    // 取最頂部的緩存記錄
43     {
44         printf("%d--%s\n", getTi.nTest, getTi.szTest);
45         prl->DelTop();    //    刪除最頂端的緩存記錄
46         ncount++;
47     }
48     printf("%d\n", ncount);
49     delete prl;
50 
51     return 0;
52 }

從運行結果可以看到主線程讀取到的記錄是亂序的,但沒有丟失的記錄。。

下載示例代碼/Files/sToa/TestCache.rar
posted @ 2009-08-16 13:41 sToa 閱讀(1779) | 評論 (1)編輯 收藏

 

本代碼服務端引用了http://www.codeproject.com/KB/IP/IOCP_how_to_cook.aspx中的代碼,并作了少量修改,在這里對原作者表示感謝。。

功能描述:
* 封裝了心跳機制
* 封裝了一層應用層協議,支持壓縮傳輸
* Client端封裝了掉線重連機制

示例代碼演示了文件傳輸并輸出傳輸速度
希望朋友們能不吝指教,幫助我進步 :)

點擊下載源碼

服務端: 

class CMyTcpServer : public CFTcpServer  
{
public:
    CMyTcpServer();
    
virtual ~CMyTcpServer();
    
    
virtual BOOL OnReadF(SCSocket *pSocket, PBYTE pData, DWORD dwLen)
    {
        
static DWORD btCount = 0;
        
static DWORD dwTime = GetTickCount();
        
static DWORD lastTime = dwTime;
        btCount 
+= dwLen;
        HANDLE    hFile 
= CreateFile("c:\\abc.dat", GENERIC_WRITE, FILE_SHARE_WRITE,
            NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
        SetFilePointer(hFile, 
00, FILE_END);
        DWORD dwBytesWrite 
= 0;
        WriteFile(hFile, pData, dwLen, 
&dwBytesWrite, NULL);
        CloseHandle(hFile);        
        
        DWORD dwTTT 
= GetTickCount();
        
if (dwTTT - lastTime > 1000)
        {
            lastTime 
= dwTTT;
            printf(
"%dkb/s %u\n", (int)(((double)btCount) * 1000 / (dwTTT - dwTime) / 1024), btCount);
        }
        
        
return TRUE;
    }
    
virtual int OnConnected(SCSocket *pSocket){return TRUE};
};


int main(int argc, char* argv[])
{
    CMyTcpServer::InitSocketLib();
    CMyTcpServer ts;
    ts.Start(
990850008150000);
    
while!_kbhit() ) ::Sleep(100);
    ts.Stop();
    
return 0;
}

  客戶端: 

class CMyTcpClient : public CFTcpClient  
{
public:
    CMyTcpClient();
    
virtual ~CMyTcpClient();
    
    
virtual VOID OnConnected()
    {
        
char buff[BUFF_SIZE_C - 100];
        HANDLE    hFile;
        
        hFile 
= CreateFile("c:\\abc.dat", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
        DWORD nNumberOfBytesRead 
= 0;
        
int pos = 0;
        
while (ReadFile(hFile, buff, BUFF_SIZE_C - 100&nNumberOfBytesRead, NULL))
        {
            
if (BUFF_SIZE_C - 100 == nNumberOfBytesRead)
                Send(buff, nNumberOfBytesRead);
            
else
                
break;
        }
        CloseHandle(hFile);
        Send(buff, nNumberOfBytesRead, TRUE);
    };
    
virtual int OnReadF(LPSTR pData, int nSize)
    {
        
return TRUE;
    }
};


int main(int argc, char* argv[])
{
    CMyTcpClient::InitSocketLib();
    CMyTcpClient 
*pcl = new CMyTcpClient;
    pcl
->Start("192.168.1.138"9908);
    
while!_kbhit() ) ::Sleep(100);
    
return 0;
}

 


 


posted @ 2009-08-13 11:21 sToa 閱讀(3950) | 評論 (2)編輯 收藏

     摘要: 原鏈接:http://bbs.pediy.com/showthread.php?t=63212&highlight=Hook+Api+lib稍微改了一下 // OpCode.h#if !defined(AFX_OPCODE_H__B8F7B840_D73F_461E_B08A_0202DD397B15__INCLUDED_)#define AFX_OPCOD...  閱讀全文
posted @ 2009-07-31 12:06 sToa 閱讀(1740) | 評論 (0)編輯 收藏

這個程序是2004年初學編程時的作品,當時是憑著一種現在看來都有些欽佩自己的激情下作出的,感謝俄羅斯方塊帶我入門.
這個程序雖然簡陋,代碼也混亂,Ai智能也不高,但也算完整,希望對俄羅斯方塊程序有興趣的朋友有所幫助 :)

/Files/sToa/20040607tetris.rar
/Files/sToa/sztetris20040926_SRC.rar

posted @ 2009-07-25 16:05 sToa 閱讀(3231) | 評論 (6)編輯 收藏

看了幾位大嚇的回復,深深地感覺到了這篇附筆中可能存在錯誤,于是把最初遇到此問題時的環境再模擬了一下,現在可以確認這篇附筆中的確存在問題,現在就修正一下,并對各位表示歉意.
6月初的一個項目中需要寫一個高性能網絡服務端程序,在網上找到了一份很好的代碼(
請參見),在使用過程中發現在多個cpp文件中引入這份代碼的h文件時,會出現很多重復定義錯誤,當時很頭疼,沒能很好的解決問題.
現總結一條:在使用類模板技術時,可在.h中實現,也可在.h和.cpp中分開實現,若用.h實現,不要在文件中加入非類模板代碼,可避免重寫定義錯誤..
      2009年7月25日23時58分58秒
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 原文如下:Posted on 2009-07-25 15:10 sToa
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

1.聲明部分
// Tpl.h
#pragma once

template<class T>
class CTpl  
{
public:
    CTpl();
    virtual ~CTpl();

    void Test(T t);

};

2.實現部分
// Tpl.cpp
#include "Tpl.h"

template<class T>
CTpl<T>::CTpl()
{

}

template<class T>
CTpl<T>::~CTpl()
{

}

template<class T>
void CTpl<T>::Test(T t)
{

}
3.習慣錯誤用法
// main.cpp
#include "Tpl.h"

int main()
{
    CTpl<char> ts;
    ts.Test(3);
    return 0;
}

build時出現link錯誤
main.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall CTpl<char>::~CTpl<char>(void)" (??1?$CTpl@D@@UAE@XZ)
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall CTpl<char>::Test(char)" (?Test@?$CTpl@D@@QAEXD@Z)
main.obj : error LNK2001: unresolved external symbol "public: __thiscall CTpl<char>::CTpl<char>(void)" (??0?$CTpl@D@@QAE@XZ)
這組錯誤信息和project中不加入Tpl.cpp的錯誤信息一樣,即沒有CTpl<char>的實現代碼
我們把Tpl.cpp包涵到main.cpp中,問題解決
4.正確用法

// main.cpp
#include "tpl.cpp"
int main()
{
    CTpl<char> ts;
    ts.Test(3);
    return 0;
}

5.總結
1.在使用以.h,.cpp分離實現模板類時,不能像使用普通類一樣只簡單的包涵.h頭文件,應該在使用模板類的cpp文件中引入模板類相應的cpp文件
2.將模板類的聲明與實現都放在.h中(在多個cpp中使用不同模板參數時可能會引起重復定義的編譯錯誤)




posted @ 2009-07-25 15:10 sToa 閱讀(9210) | 評論 (7)編輯 收藏

僅列出標題
共2頁: 1 2 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美综合国产| 午夜免费久久久久| 欧美成人精品高清在线播放| 欧美刺激性大交免费视频| 亚洲国产mv| 中文网丁香综合网| 欧美专区中文字幕| 欧美日韩在线视频首页| 国一区二区在线观看| 日韩午夜在线播放| 久久婷婷av| 夜夜嗨av色综合久久久综合网| 午夜天堂精品久久久久| 欧美激情亚洲国产| 韩国一区二区在线观看| 亚洲一区二区三区视频| 欧美黄色影院| 欧美一区二区日韩| 国产精品福利av| 亚洲国产小视频在线观看| 久久国产日韩欧美| 一区二区三区毛片| 欧美黄色免费网站| 亚洲国产精品va在线看黑人 | 欧美国产日韩视频| 亚洲视频在线观看| 欧美色欧美亚洲高清在线视频| 亚洲高清久久网| 久久九九热免费视频| 亚洲免费一级电影| 国产精品日韩欧美一区二区三区| 99亚洲一区二区| 亚洲欧美日韩一区二区三区在线| 日韩视频免费| 欧美日韩精品免费看| 日韩午夜免费视频| 久久久久久久91| 亚洲欧美大片| 毛片基地黄久久久久久天堂| 亚洲啪啪91| 欧美成人精品h版在线观看| 在线免费观看日本欧美| 欧美日韩一卡| 亚洲精选一区| 91久久在线| 久久精品日韩| 一区在线观看视频| 欧美第十八页| 男同欧美伦乱| 一区二区av在线| 一本大道久久a久久精品综合| 欧美日韩一区二区三区| 亚洲最新中文字幕| 亚洲一级网站| 激情欧美一区二区| 亚洲福利视频三区| 欧美日韩dvd在线观看| 亚洲欧美日韩国产精品| 欧美成人一区二区三区在线观看| 免费日韩精品中文字幕视频在线| 亚洲精品小视频在线观看| 久久九九全国免费精品观看| 久久午夜视频| 一区二区三区产品免费精品久久75 | 欧美一区二区大片| 亚洲第一偷拍| 日韩亚洲视频在线| 91久久精品国产91性色| 午夜日韩福利| 亚洲一区二区三区免费观看| 欧美一级艳片视频免费观看| 亚洲国产精品福利| 一本色道久久综合精品竹菊| 亚洲精品少妇网址| 国产农村妇女精品| 在线亚洲国产精品网站| 夜夜嗨av一区二区三区四季av| 久久久久久尹人网香蕉| 久久久国产午夜精品| 国产精品三区www17con| 99热免费精品在线观看| 一区二区日韩精品| 欧美日本网站| 亚洲精品美女在线观看播放| 亚洲黄色免费电影| 老**午夜毛片一区二区三区| 久久午夜精品| 精品成人在线视频| 久久久久久久999| 久久久久一区二区三区四区| 国产欧美日韩在线播放| 欧美一级片在线播放| 欧美呦呦网站| 国产日韩视频| 欧美怡红院视频| 久久国产99| 国产一区二区在线观看免费| 午夜精品一区二区三区在线| 校园激情久久| 国产精品一区二区三区乱码| 亚洲一卡二卡三卡四卡五卡| 午夜欧美理论片| 国产美女精品| 男女激情视频一区| 狠狠狠色丁香婷婷综合激情| 香蕉亚洲视频| 久久亚洲综合色一区二区三区| 国产日韩一区欧美| 欧美一区二区在线播放| 免费成人网www| 亚洲日本一区二区三区| 欧美激情一区二区三区全黄| 91久久国产综合久久蜜月精品 | 在线看片一区| 欧美激情第8页| 在线午夜精品自拍| 久久久久国产精品厨房| 在线观看日韩av电影| 欧美大片在线影院| 一区二区日本视频| 久久青青草原一区二区| 亚洲激情网站| 欧美色精品在线视频| 欧美中文字幕在线| 欧美国产日韩一区| av成人天堂| 国产视频一区在线观看一区免费| 久久久久免费视频| 99精品欧美一区二区蜜桃免费| 欧美性猛交视频| 久久精品国产清高在天天线| 亚洲国产日韩在线一区模特| 亚洲综合第一页| 在线观看国产欧美| 国产精品欧美在线| 免费久久99精品国产自| 亚洲视频一二三| 欧美大片va欧美在线播放| 亚洲一区三区在线观看| 在线观看91精品国产入口| 欧美手机在线视频| 久久久亚洲午夜电影| 中国女人久久久| 欧美福利视频网站| 新片速递亚洲合集欧美合集| 亚洲国产免费| 欧美多人爱爱视频网站| 亚洲免费综合| 亚洲麻豆一区| 欧美大片免费久久精品三p | 久久成人精品一区二区三区| 99xxxx成人网| 亚洲高清不卡av| 国产色产综合产在线视频| 欧美精品日韩综合在线| 久久精品二区亚洲w码| 在线观看中文字幕不卡| 国产精品欧美久久久久无广告| 欧美高清在线观看| 久久久久久一区二区三区| 亚洲欧美怡红院| 一区二区国产日产| 最新日韩在线视频| 亚洲天堂成人在线视频| 亚洲精品一区二区三区福利| 韩国v欧美v日本v亚洲v| 国产精品一区二区在线观看不卡| 欧美精品免费在线| 欧美成人免费在线| 久久影视精品| 美女精品一区| 亚洲国产精品一区二区第四页av| 久久精品视频免费观看| 欧美一区二视频| 亚洲免费影视| 一区二区冒白浆视频| 亚洲区国产区| 亚洲国内在线| 亚洲国产婷婷香蕉久久久久久99| 狠狠色伊人亚洲综合网站色| 国产午夜精品全部视频播放| 国产九区一区在线| 国产精品系列在线播放| 国产日本欧美一区二区三区在线| 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 99国内精品久久| 亚洲精品久久久久久久久久久久 | 亚洲午夜电影网| 亚洲午夜一级| 欧美综合国产| 久久精品国产清自在天天线| 久久黄色网页| 久久综合亚州| 亚洲激情不卡| 一本久道久久综合中文字幕| 亚洲无限av看| 久久高清福利视频| 久久免费视频在线| 欧美h视频在线| 欧美日韩亚洲一区二区三区在线|