網(wǎng)絡(luò)技術(shù)是從1990年代中期發(fā)展起來(lái)的新技術(shù),它把互聯(lián)網(wǎng)上分散的資源融為有機(jī)整體,實(shí)現(xiàn)資源的全面共享和有機(jī)協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計(jì)算機(jī)、存儲(chǔ)資源、數(shù)據(jù)資源、信息資源、知識(shí)資源、專家資源、大型數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、傳感器等。 當(dāng)前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡(luò)則被認(rèn)為是互聯(lián)網(wǎng)發(fā)展的第三階段。 剛剛學(xué)內(nèi)核對(duì)象,想寫(xiě)個(gè)可以防殺的進(jìn)程,但其他方法太高級(jí),本菜鳥(niǎo)不感高攀,想了幾天,想到一個(gè)很本的辦法,不正確的 方還請(qǐng)高手指點(diǎn)一下. 程序運(yùn)行兩個(gè)事例,每個(gè)實(shí)例互相監(jiān)視另外的實(shí)例是否存在, 如果不存在,就運(yùn)行一個(gè). 代碼: // test_process.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "tchar.h" #include "iostream.h" #include "windows.h" LPCTSTR lpszMutex1 = _T("mutex1"); LPCTSTR lpszMutex2 = _T("mutex2"); DWORD WINAPI Thread1(LPARAM lParam); DWORD WINAPI Thread2(LPARAM lParam); int main(int argc, char* argv[]) { HANDLE hMutex1 = CreateMutex(NULL, FALSE, lpszMutex1); if (hMutex1 != NULL) if (GetLastError() == ERROR_ALREADY_EXISTS) { CloseHandle(hMutex1); cout << lpszMutex1 << " already exist." << endl; HANDLE hMutex2 = CreateMutex(NULL, FALSE, lpszMutex2); if (hMutex2 != NULL) if (GetLastError() == ERROR_ALREADY_EXISTS) { cout << lpszMutex2 << " already exist." << endl; return 1; } } DWORD dwThreadId; HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Thread1,NULL,0,&dwThreadId); CloseHandle(hThread); while (1) Sleep(1); return 0; } DWORD WINAPI Thread1(LPARAM lParam) { HANDLE hMutex; while (1) { hMutex = OpenMutex(MUTEX_ALL_ACCESS, TRUE, lpszMutex1); if (! hMutex) { STARTUPINFO si = { sizeof STARTUPINFO }; PROCESS_INFORMATION pi; TCHAR szBuf[MAX_PATH]; GetModuleFileName(GetModuleHandle(NULL), szBuf, MAX_PATH); CreateProcess(szBuf, NULL, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi); CloseHandle(pi.hThread); CloseHandle(pi.hProcess); } CloseHandle(hMutex); hMutex = OpenMutex(MUTEX_ALL_ACCESS, TRUE, lpszMutex2); if (! hMutex) { cout << "mutex 2 created." << endl; STARTUPINFO si = { sizeof STARTUPINFO }; PROCESS_INFORMATION pi; TCHAR szBuf[MAX_PATH]; GetModuleFileName(GetModuleHandle(NULL), szBuf, MAX_PATH); CreateProcess(szBuf, NULL, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi); CloseHandle(pi.hThread); CloseHandle(pi.hProcess); } CloseHandle(hMutex); cout << "Thread ..." << endl; Sleep(1); } return 1; } 網(wǎng)絡(luò)的神奇作用吸引著越來(lái)越多的用戶加入其中,正因如此,網(wǎng)絡(luò)的承受能力也面臨著越來(lái)越嚴(yán)峻的考驗(yàn)―從硬件上、軟件上、所用標(biāo)準(zhǔn)上......,各項(xiàng)技術(shù)都需要適時(shí)應(yīng)勢(shì),對(duì)應(yīng)發(fā)展,這正是網(wǎng)絡(luò)迅速走向進(jìn)步的催化劑。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!