91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2.91MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-08-13
  • 語言: 其他
  • 標簽: 跟蹤器??伺服??

資源簡介

trakStar系列跟蹤器的伺服程序,采用多線程命名管道技術,可以為多個進程提供數據輸出服務。

資源截圖

代碼片段和文件信息

#include?“Tracker.h“
#include?
#include?
#include?
#include??

#define?BUFFERSIZE?256 //緩沖區大小
#define?MAX_NUM_PIPES?5??//線程個數,即允許同時連接的客戶機個數

//隱藏窗口
#pragma?comment(?linker?“/subsystem:\“windows\“?/entry:\“mainCRTStartup\“?“)

DWORD?WINAPI?PipeInstanceProc(LPVOID?lpParameter);??//多線程回調函數
DWORD?WINAPI?ListenPipeProc(LPVOID?lpParameter);??//監聽管道回調函數
Tracker?*tracker;

int?main(int?argcchar**?argv)
{
//判斷程序是否運行第二次
HANDLE?hMutex?=?NULL;
TCHAR*?lpszName?=?“TestMutex“;

hMutex?=?CreateMutex(NULLFALSElpszName);
DWORD?dwRet=GetLastError();

if(hMutex)
{
if(ERROR_ALREADY_EXISTS?==?dwRet)
{
//some?warnings?here...
CloseHandle(hMutex);

return?-1;
}
}

printf(“等待跟蹤器啟動...\n“);
tracker=new?Tracker();
printf(“跟蹤器開始寫數據...\n“);

HANDLE?hThreadHandle;//線程句柄
DWORD?threadId;//線程號

//創建五個線程,分別處理一個客戶機連接
for?(int?i=0;i {
hThreadHandle=CreateThread(
NULL//WinNT后永久設為NULL
0//線程初始化堆棧大小,一般設為0
PipeInstanceProc//線程回調函數的指針,即函數名
NULL//傳輸給回調函數的參數,通過它實現對回調函數的控制
0//線程創建完畢后的狀態,0表示創建后執行線程,CREATE_SUSPENDED表示暫時掛起,等待叫醒
&threadId//線程ID值的地址
);
if(hThreadHandle==NULL)
{
printf(“創建線程%d失敗!%d\n“iGetLastError());

return?0;
}

printf(“創建命名管道線程%d成功!“i);
}

//等待線程結束
WaitForSingleobject(hThreadHandleINFINITE);
CloseHandle(hThreadHandle);
hThreadHandle=NULL;

delete?tracker;

return?0;
}

/*
*????函數名稱:?PipeInstanceProc
*?函數參數:?(in)LPVOID:?????附加信息
*?????函數作用:?處理一個命名管道實例的線程
*?函數返回值:(DWORD)若順利完成,則返回1;若獲取域名失敗,則返回0
*/
DWORD?WINAPI?PipeInstanceProc(LPVOID?lpParameter)
{
HANDLE?hPipeHandle;//命名管道的句柄
HANDLE?hThreadListen;//管道監聽句柄

/*
*?函數名稱:?CreateNamedPipe
*?函數參數:?(in)LPCTSTR???????命名管道名字,UNC標準(?\\IP地址\Pipe\唯一標識文件路徑?)
*??????(in)DWORD???????命名管道模式,單雙向,讀寫控制,安全模式(?均被宏定義好,可位或操作?)
*??????(in)DWORD???????命名管道讀,寫,等待模式(?均被宏定義好,可位或操作?)
*??????(in)DWORD???????命名管道最多可創建的實例句柄個數
*??????(in)DWORD???????命名管道輸出緩沖區大小
*??????(in)DWORD???????命名管道輸入緩沖區大小
*??????(in)DWORD???????命名管道默認超時時間
*??????(in)LPSECURITY_ATTRIBUTES?命名管道安全描述符,若為NULL,則句柄不可繼承的默認安全。
*?函數作用:?創建一個命名管道實例
*?函數返回值:(HANDLE)成功則返回命名管道實例的句柄,失敗則返回值INVALID_HANDLE_VALUE
*/
hPipeHandle?=?CreateNamedPipe(
_T(“\\\\.\\pipe\\TrackerService“)
PIPE_ACCESS_DUPLEX
PIPE_TYPE_BYTE?|?PIPE_READMODE_BYTE?|PIPE_WAIT
PIPE_UNLIMITED_INSTANCES
BUFFERSIZE
BUFFERSIZE
0
NULL
);
if?(hPipeHandle?==?INVALID_HANDLE_VALUE)
{
printf(“創建命名管道失敗!%d\n“GetLastError());

return?0;
}

printf(“創建命名管道成功!\n“);

HANDLE?h;//線程句柄,用于一個客戶機退出連接之后,服務器重新建立一個服務線程

//處理客戶端信息
while?(1)
{
/*
*????函數名稱:?ConnectNamedPipe
*?函數參數:?(in)HANDLE:?????命名管道實例句柄
*??????(in)LPOVERLAPPED????是否鎖定式命名管道
*?????函數作用:?建立命名管道連接并監聽
*?函數返回值:(bool)若順利建立,則返回true;若順利失敗,則返回false
*/
if?(ConnectNamedPipe(hPipeHandleNULL))
{
printf(“有客戶端連接命名管道!\n“);
//Create?listen?pipe?thread
hThreadList

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件?????????33??2011-03-31?10:55??TrackerService\Debug\PCIBird3.ini

?????文件??????45056??2011-03-31?10:54??TrackerService\Debug\TrackerService.exe

?????文件?????446976??2011-03-31?10:57??TrackerService\Debug\TrackerService.ilk

?????文件?????625664??2011-03-31?10:54??TrackerService\Debug\TrackerService.pdb

?????文件?????????33??2010-11-03?23:21??TrackerService\Release\PCIBird3.ini

?????文件??????11776??2010-11-04?11:48??TrackerService\Release\TrackerService.exe

?????文件?????437248??2010-11-04?11:48??TrackerService\Release\TrackerService.pdb

?????文件???????6058??2011-03-31?10:57??TrackerService\TrackerService\Debug\BuildLog.htm

?????文件??????52345??2011-03-31?10:57??TrackerService\TrackerService\Debug\Main.obj

?????文件?????????69??2011-03-31?10:54??TrackerService\TrackerService\Debug\mt.dep

?????文件??????23412??2011-03-26?16:49??TrackerService\TrackerService\Debug\SingleClass.obj

?????文件??????66330??2011-03-31?10:53??TrackerService\TrackerService\Debug\Tracker.obj

?????文件????????663??2011-03-31?10:54??TrackerService\TrackerService\Debug\TrackerService.exe.embed.manifest

?????文件????????728??2011-03-31?10:54??TrackerService\TrackerService\Debug\TrackerService.exe.embed.manifest.res

?????文件????????621??2011-03-31?10:54??TrackerService\TrackerService\Debug\TrackerService.exe.intermediate.manifest

?????文件?????609280??2011-03-31?10:57??TrackerService\TrackerService\Debug\vc90.idb

?????文件?????266240??2011-03-31?10:57??TrackerService\TrackerService\Debug\vc90.pdb

?????文件???????5507??2011-03-31?10:57??TrackerService\TrackerService\Main.cpp

?????文件?????????33??2011-03-31?10:51??TrackerService\TrackerService\PCIBird3.ini

?????文件???????5172??2010-11-04?12:01??TrackerService\TrackerService\Release\BuildLog.htm

?????文件?????587127??2010-11-04?11:59??TrackerService\TrackerService\Release\Main.obj

?????文件?????????69??2010-11-04?11:48??TrackerService\TrackerService\Release\mt.dep

?????文件?????591728??2010-11-03?23:20??TrackerService\TrackerService\Release\Tracker.obj

?????文件????????616??2010-11-04?11:48??TrackerService\TrackerService\Release\TrackerService.exe.intermediate.manifest

?????文件?????322560??2010-11-04?11:59??TrackerService\TrackerService\Release\vc90.idb

?????文件?????241664??2010-11-04?11:59??TrackerService\TrackerService\Release\vc90.pdb

?????文件????????327??2011-03-26?16:47??TrackerService\TrackerService\SingleClass.cpp

?????文件????????227??2011-03-26?16:32??TrackerService\TrackerService\SingleClass.h

?????文件???????3221??2011-03-26?17:14??TrackerService\TrackerService\Tracker.cpp

?????文件???????2012??2010-11-24?23:40??TrackerService\TrackerService\Tracker.h

............此處省略15個文件信息

評論

共有 條評論