1. 如何用C語言檢測網路是否連接上、已連接、已斷開狀態
如果對方斷開連接的話,沖敗那麼readNum = recv ( socketId, rcvBuf, rcvBufSize, 0 );
readNum返回值應該是0,可以根據返回值局襲判斷
還有一種辦法,就是做一個心跳檢測,定時發送消息,如果發送失敗就知道對方不散臘顫在了
2. 如何用c語言程序獲取計算機信息
開機密碼不能獲取哦。用戶名很簡單。只要用個GetUserName這個API就行了。詳細的代碼我給你看看:
//#include"stdafx.h"
//#include"GetSysInfo.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
CWinApptheApp;
usingnamespacestd;
//獲取CPU相關信息
voidGetCPUInfo()
{
CStringCPU;
SYSTEM_INFOsysteminfo;
//獲取CPU型號
GetSystemInfo(&systeminfo);
switch(systeminfo.dwProcessorType)
{
casePROCESSOR_INTEL_386://386系列
CPU="PROCESSOR_INTEL_386";
break;
casePROCESSOR_INTEL_486://486系列
CPU="PROCESSOR_INTEL_486";
break;
casePROCESSOR_INTEL_PENTIUM://奔騰系列
CPU="PROCESSOR_INTEL_PENTIUM";
break;
casePROCESSOR_MIPS_R4000:
CPU="PROCESSOR_MIPS_R4000";
break;
casePROCESSOR_HITACHI_SH3:
CPU="PROCESSOR_HITACHI_SH3";
break;
casePROCESSOR_HITACHI_SH4:
CPU="PROCESSOR_HITACHI_SH4";
break;
casePROCESSOR_STRONGARM:
CPU="PROCESSOR_STRONGARM";
break;
casePROCESSOR_ARM720:
CPU="PROCESSOR_ARM720";
break;
default:
CPU="UnknownType";
break;
}
printf(" CPU銀茄旦型號:%s ",CPU);
}
//獲取內存信息
voidGetMemoryInfo()
{
CStringMemoryTotal;//總內存大小
CStringMemoryAvail;//可用內存大小
MEMORYSTATUSmemory;
memory.dwLength=sizeof(memory);//初始化
//獲取內存信息
GlobalMemoryStatus(&memory);
MemoryTotal.Format(_T("%dMb"),int(memory.dwTotalPhys/1024/1024));
MemoryAvail.Format(_T("鋒擾%dMb"),int(memory.dwAvailPhys/1024/1024));
printf("主機總內存:%s ",MemoryTotal);
printf("主機可用內存:%s ",MemoryAvail);
}
//獲取磁碟信息
voidGetDiskInfo()
{
DWORDsector,byte,cluster,free;
longintfreespace,totalspace;
UINTtype;
charname;
CStringstrname;
//循環檢測A~Z,找到磁碟即輸出
//0—未知盤、1—不存在、2—可移動磁碟、3—固定磁碟
//4—網路磁碟、5—CD-ROM、6—內存虛擬盤
for(name='A';name<='Z';name++)
{
strname.Format(_T("%c:"),name);
type=GetDriveType(strname);//獲納段得磁碟類型
switch(type)
{
case0:
printf("未知類型磁碟:%s",strname);
break;
case2:
printf("可移動類型磁碟:%s",strname);
break;
case3:
printf("固定磁碟:%s",strname);
break;
case4:
printf("網路映射磁碟:%s",strname);
break;
case5:
printf("光碟機:%s",strname);
break;
case6:
printf("內存虛擬磁碟:%s",strname);
break;
default:
break;
}
if(type!=1)
{
//獲取磁碟空間信息
GetDiskFreeSpace(strname,§or,&byte,&free,&cluster);
//磁碟總大小
totalspace=int(cluster)*byte*sector/1024/1024;
//磁碟可用空間大小
freespace=int(free)*byte*sector/1024/1024;
printf("總大小%dMb",totalspace);
printf("可用空間%dMb",freespace);
printf(" ");
}
}
}
int_tmain(intargc,TCHAR*argv[],TCHAR*envp[])
{
intnRetCode=0;
//
if(!AfxWinInit(::GetMoleHandle(NULL),NULL,::GetCommandLine(),0))
{
//TODO:
cerr<<_T("FatalError:MFCinitializationfailed")<<endl;
nRetCode=1;
}
else
{
//TODO:codeyourapplication'sbehaviorhere.
//輸出CPU信息
GetCPUInfo();
//輸出內存信息
GetMemoryInfo();
//輸出磁碟信息
GetDiskInfo();
}
returnnRetCode;
}
其中獲取了系統的很多相關信息。像cpu內存硬碟用戶名等等。你可以參考一下,呵呵。
3. 基於c語言,網路編程,伺服器接收客戶端1的信息發送給客戶端2
char buff2[1024*10];
int receiveLen;
/*調粗塵用accept函數,等待客戶端的連接*/
client_fd=accept(sockfd,(struct sockaddr *)&client_sockaddr,&sin_size
/*調用recv函數接岩源禪收客戶端的請求*/
recvbytes=recv(client_fd,buf,BUFFER_SIZE,0)
typedef int (WINAPI ICEPUB_TCPSENDANDRECEIVETEXT)(char *sendBuff, int sendBuffLen,char *recvBuff,int recvMaxLen,char* serverIP,int serverPort);
ICEPUB_TCPSENDANDRECEIVETEXT *icePub_tcpSendAndReceiveText = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll"裂洞);
if(hDLLDrv)
{
icePub_tcpSendAndReceiveText=(ICEPUB_TCPSENDANDRECEIVETEXT *)GetProcAddress(hDLLDrv,"icePub_tcpSendAndReceiveText");
}
if(icePub_tcpSendAndReceiveText)
receiveLen=icePub_tcpSendAndReceiveText(buf,recvbytes),buff2,1024*10,"192.168.1.2",8000);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
AfxMessageBox(buff2);
4. C++/C語言程序.用戶網路登錄信息管理
#include<string>
#include<list>
#include<iostream>
#include<fstream>
usingnamespacestd;
typedefstruct_USER_INFO{
stringstrName;
intnLoginTime;
intnLogoutTime;
}USER_INFO,*PUSER_INFO;
list<USER_INFO>UserInfoList;
voidInsert()
{
USER_INFOui;
cout<<"輸入用戶名:";
cin>>ui.strName;
cout<<"上線時間:";
cin>>ui.nLoginTime;
cout<<"下線時間:";
cin>>ui.nLogoutTime;
UserInfoList.push_back(ui);
cout<<"錄入完成!"<<endl;
}
voidfind()
{
stringstrUserName;
cout<<"輸入用戶名:";
cin>>strUserName;
boolbFind=false;
list<USER_INFO>::const_iteratoriter=UserInfoList.begin();
for(;iter!=UserInfoList.end();iter++)
{
if(strUserName==iter->strName)
{
cout<<"該用戶信息如下:"<<endl;
cout<<"用戶名:"<<iter->strName<<endl;
cout<<"上線時間:"<<iter->nLoginTime<<endl;
cout<<"下線時間:"<<iter->nLogoutTime<<endl;
bFind=true;
break;
}
}
if(bFind==false)
cout<<"無此用戶!"<<endl;
}
voidCalcUserTime()
{
list<USER_INFO>::const_iteratoriter=UserInfoList.begin();
for(;iter!=UserInfoList.end();iter++)
{
cout<<"用戶名:"<<iter->strName<<endl;
cout<<"上網時間:"<<iter->nLogoutTime-iter->凳絕閉nLoginTime<<"秒"<<endl;
cout<<"------------"<<endl;
}
}
voidSaveToFile()
{
charfilename[]="c:\用戶網路登錄信息棗裂.txt";
ofstreamfout(filename);
fout<<"用戶名 上線時間 離線時間"<<endl;
list<USER_INFO>::const_iteratoriter=UserInfoList.begin();
for(;iter!=UserInfoList.end();iter++)
{
fout<<iter->strName<<" ";
fout<<iter->nLoginTime<<" ";
fout<<iter->nLogoutTime<<endl;
}
cout<<"保存成功!"<<endl;
}
voidmain()
{
while(1)
{
cout<<endl;
cout<<"1.錄入數據"<<endl;
cout<<"2.查詢用戶信息"<<endl;
cout<<"3.統計上網時間"<<endl;
cout<<"4.保存到文件"<<endl;
cout<<"5.退出"<<endl;
cout<<"---------------------------"<宏肆<endl;
cout<<"輸入操作碼:";
intnInput;
cin>>nInput;
cout<<"------------"<<endl;
switch(nInput)
{
case1:Insert();break;
case2:find();break;
case3:CalcUserTime();break;
case4:SaveToFile();break;
case5:exit(0);
default:cout<<"輸入有誤,重新輸入:";
}
}
}
5. 跪求用C語言編寫一份完整的關於物聯網的定位和信息採集的畢業設計和論文
標題的樣式還有多種,作者可以在實踐中大膽創新。
副標題和分標題
為了點明論文的研究對象、研究內容、研究目的,對總標題加以補充、解說,有的論文還可以加副標題。非凡是一些商榷性的論文,一般都有一個副標題,如在總標題下方,添上「與××商榷」之類的副標題。
另外,為了強調論文所研究的某個側重面,也可以加副標題。如《如何看待現階段勞動報酬的差別——也談按勞分配中的資產階級權利》、《開發蛋白質資源,提高蛋白質利用效率——探討解決吃飯問題的一種發展戰略》等。
設置分標題的主要目的是為了清楚地顯示文章的層次。有的用文字,一般都把本層次的中心內容昭然其上;也有的用數碼,僅標明「一、二、三」等的順序,起承上啟下的作用。需要注重的是:無論採用哪種形式,都要緊扣所屬層次的內容,以及上文與下文的聯系緊密性。
目錄
一般說來,篇幅較長的畢業論文,都沒有分標題。設置分標題的論文,因其內容的層次較多,整個理論體系較龐大、復雜,故通常設目錄。
設置目錄的目的主要是:
1.使讀者能夠在閱讀該論文之前對全文的內容、結構有一個大致的了解,以便讀者決定是讀還是不讀,是精讀還是略讀等。
2.為讀者選讀論文中的某個分論點時提供襲脊方便。長篇論文,除中心論點外,還有許多分論點。當讀者需要進一步了解某個分論點時,就可以依靠目錄而節省時間。
目錄一般放置在論文正文的前面,因而是論文的導讀圖。要使目錄真正起到導讀圖的作用,必須注重:
1.准確。目錄必須與全文的綱目相一致。也就是說,本文的標題、分標題與目錄存在著一一對應的關系。
2.清楚無誤。目錄應逐一標注該行目錄在正文中的頁碼。標注頁碼必須清楚無誤。
3.完整。目錄既然是論文的導讀圖,因而必然要求具有完整性。也就是要求文章的各項內容,都應在目錄中反映出來,不得遺漏。
目錄有兩種基本類型:
1.用文字表示的目錄。
2.用數碼表示的目錄。這種目錄較少見。但長篇大論,便於讀者閱讀,也有採用這種方式的。
內容提要
內容提要是全文內容的縮影。在這里,作者以極經濟的筆墨,勾畫出全文的整體面目;提出主要論點、揭示論文的研究成果、簡要敘述全文的框架結構。
內容提要是正文的附屬部分,一拍蠢滲般放置在論文的篇首。
寫作內容提要的目的在於:
1.為了使指導老師在未審閱論文全文時,先對文章的主要內容有個大體上的了解,知道研究所取得的主要成果,研究的主要邏輯順序。
2.為了使其他讀者通過閱讀內容提要,就能大略了解作者所研究的問題,假如產生共鳴,則再進一步閱讀全文。在這里,內容提要成了把論文推薦給眾多讀者的「廣告」。
因此,內容提要應把論文的主要觀點提示出來,便於讀者一看就能了解論文內容的要點。論文提要要求寫得簡明而又全面,不要啰哩啰嗦抓不住要點或者只是乾巴巴的幾條筋,缺乏說明觀點的材料。
內容提要可分為報道性提要和指示性提要。
報道性提要,主要介紹研究的主要方法與成果以及成果分檔漏析等,對文章內容的提示較全面。
指示性提要,只簡要地敘述研究的成果(數據、看法、意見、結論等),對研究手段、方法、過程等均不涉及。畢業論文一般使用指示性提要。
6. 如何用C/C++編程,獲取網路介面數據
獲取網路借口數據?
是要過濾收發數據么?
過濾收發數據方法很多
用戶層下的SPI介面可以做,不過比較簡單,功能受限制
驅動層有NIDS過濾驅動可以實現,功能比較強大,商業防火牆等軟體都是採用該方法實現的。
當然還有更底層的Hook過濾,不過實現更復雜,
7. 用C語言實現一個復雜網路拓撲結構的消息傳遞過程
這個比較復雜啊,我也不會
8. 在windows下用C語言如何實現socket網路編程,需要用到哪些頭文件或者庫
需要用到的頭文件包含:
#include <winsock2.h>
#include <windows.h>
與Linux環境下socket編程相比,windows環境多了一個步驟:啟動或者初始化winsock庫
Winsock,一種標准API,一種網路編程介面,用於兩個或多個應用程序(或進程)之間通過網路進行數據通信。具有兩個版本:
Winsock 1:
Windows CE平台支持。
頭文件:WinSock.h
庫:wsock32.lib
Winsock 2:
部分平台如Windows CE貌似不支持。通過前綴WSA可以區別於Winsock 1版本。個別函數如WSAStartup、WSACleanup、WSARecvEx、WSAGetLastError都屬於Winsock 1.1規范的函數;
頭文件:WinSock2.h
庫:ws2_32.lib
mswsock.h用於編程擴展,使用時必須鏈接mswsock.dll
(8)如何用c收集網路信息擴展閱讀
winsock庫的載入與卸載:
載入:int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData);
載入成功,返回值為0。
WORD wVersionRequested:載入的winsock版本,使用宏MAKEWORD(x, y),x表示高位元組,y表示低位元組。然而使用時MAKEWORD(2, 2)。高位元組與低位元組相同~~
LPWSADATA lpWSAData:WSADATA結構的指針,傳入參數後,系統幫助我們填充版本信息。有興趣的可以看看結構體內容,不過基本用不著。
卸載:int WSACleanup(void);比起載入,卸載的函數真是輕松愉快。
9. 網路時代你該如何利用軟體快速收集有效信息
拿樂思網路信息採集系統為例,主要功能為:根據用戶自定義的任務配置,批量而精確地抽取網際網路目標網頁中的半結構化與非結構化數據,轉化為結構化的記錄,保存在本地資料庫中,用於內部使用或外網發布,快速實現外部信息的獲取。樂思網路信息採集系統可用於:門戶網站新聞採集,行業資訊採集,競爭情報獲取,資料庫營銷等領域。
信息採集軟體可對原始信息加以收集匯總,利用一定演算法進行處理,最後提供增值的信息服務。那麼在當今資訊發達的網路時代,如何才能合理利用軟體快速、全面、准確的收集到對工作有參考價值的信息資料呢?
首先,理順信息收集目的。
要弄清楚:收集信息資料是為了達成什麼目的?要從這些信息資料得到什麼結論?大概需要哪幾個方面的信息資料?需要多長時間來收集?在收集各類信息時,要有嚴謹認真的態度。信息收集也要講求「輕重緩急」,沒有完成目的的意識,收集的信息就不具有任何意義。
其次,明確資料收集方向。
這樣做的好處,就是收集到的信息資料更全面、系統,有利於整合。就比如,我們在服務某一客戶時,往往需要收集行業趨勢、市場環境、客戶背景、客戶競爭對手的信息資料等等。
第三、明確信息收集途徑。
想清楚了自己需要什麼,接下來就是清楚自己在哪能得到這些信息。如各種搜索引擎、行業網站、行業論壇、客戶和競爭對手網站等等。
第四、及時調整收集任務。
信息的收集往往難以一次性完成,要善於發現和獲取那些先兆性強、信息量大的信息資料;及時調整工作任務,在需要時進行補充性收集和追蹤收集,以保證信息加工的需要,提高信息的質量。
第五、整合分析信息資料。
這一階段主要是將收集來的信息資料及時匯總、分類、梳理,如調查報告,資料摘編、統計報表、情況反映等,送交信息加工部門。面對紛繁復雜的信息和事務,最需要的就是如何運用適當的思維方法和思維技巧對這些信息進行分析、歸納、判斷和運用。未來的競爭完全可以理解為信息收集、運用、處理能力的競爭。
信息的收集不是一日之功,日積月累、堅持不懈才會有最終的收獲。在當前經濟社會中,信息具有極高的價值,越多地掌握信息就越能准確地預判出事物發展的趨勢與結果,做出抉擇時面臨的風險也會降到最低。
10. C語言在通信方面的應用
如果你明白通信就是雙方約定協議的過程就能明白了,C是用來編寫通信協議的,把你的需要通信的內容通過c編寫的轉換驅動,編譯成通信協議格式,發給對方,
說白了,C就是個工具,不一定C,basic也能寫成XP,關鍵看你怎麼用,Unix 都是C編寫的,
單片機最好的驅動就是C了,移植性強,可讀性好,定義也很方便,當年畢設都是用C編寫51單片機的一個通信板驅動,
個人理解,通信就是握手。哈哈。