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

  • 大小: 39.49MB
    文件類型: .rar
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2023-07-30
  • 語言: C/C++
  • 標(biāo)簽: 計(jì)算??網(wǎng)??

資源簡介

根據(jù)給定C++程序(client.cpp和server.cpp),學(xué)習(xí)和練習(xí)socket編程。基于兩個(gè)給定的C++程序,實(shí)現(xiàn)基于IP地址和端口號的聊天應(yīng)用程序。具體實(shí)現(xiàn)要求如下:1. 在本地機(jī)器上編譯運(yùn)行client.cpp和server.cpp程序,逐條回答程序注釋中的問題,學(xué)習(xí)理解socket編程的主要函數(shù)及相關(guān)操作。2. 對client.cpp和server.cpp進(jìn)行整合和改進(jìn),使得程序能夠在一個(gè)顯示窗口中同時(shí)顯示發(fā)送的消息和收到的消息,并說明你是如何設(shè)計(jì)和實(shí)現(xiàn)這種功能的?3. 原始的client.cpp和server.cpp將發(fā)送端IP和端口號寫入到程序內(nèi)容,對于使用并不十分方便,如果通過界面或終端輸入,實(shí)現(xiàn)發(fā)送端IP地址和端口號的靈活設(shè)置?類似的,如何設(shè)置自己的服務(wù)程序偵聽的端口號?回答上述問題,并在2的程序基礎(chǔ)上改進(jìn)程序,實(shí)現(xiàn)這些功能。4. 如何利用改寫好的程序?qū)崿F(xiàn)局域網(wǎng)內(nèi)的廣播?寫出你的方法,并和周圍周圍同學(xué)溝通驗(yàn)證這一功能。用自己的電腦截圖說明該功能的實(shí)現(xiàn)。5. 設(shè)計(jì)實(shí)施更為友善合理的用戶交互界面。6. 小組成員新增功能。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include
#include
#include
using?namespace?std;
#pragma?comment(lib?“ws2_32.lib“)?
#pragma?comment(lib?“IPHLPAPI.lib“)

#define?MALLOC(x)?HeapAlloc(GetProcessHeap()?0?(x))??
#define?FREE(x)?HeapFree(GetProcessHeap()?0?(x))??

DWORD?receiverMark?;//?接收消息者線程標(biāo)識符?獲取IP信息

int?GetIpAddrTableFunction()??
{??
????PMIB_IPADDRTABLE?pIPAddrTable;??//?網(wǎng)絡(luò)接口與IP地址映射表??
????DWORD?dwSize?=?0;???????????????//?獲取數(shù)據(jù)的大小??
????DWORD?dwRetVal?=?0;?????????????//?調(diào)用GetIPAddrTable()函數(shù)的返回值??
????IN_ADDR?IPAddr;?????????????????//?保存IP地址的結(jié)構(gòu)體??
????LPVOID?lpMsgBuf;????????????????//?用于獲取錯(cuò)誤信息??
??
????//?分配內(nèi)存空間??
????pIPAddrTable?=?(MIB_IPADDRTABLE?*)?MALLOC(sizeof?(MIB_IPADDRTABLE));??
????//?第1次調(diào)用GetIpAddrTable()函數(shù),獲取數(shù)據(jù)的大小到dwSize??
????if?(pIPAddrTable)?{??
????????if?(GetIpAddrTable(pIPAddrTable?&dwSize?0)?==??ERROR_INSUFFICIENT_BUFFER)?{??
????????????FREE(pIPAddrTable);??
????????????pIPAddrTable?=?(MIB_IPADDRTABLE?*)?MALLOC(dwSize);??
??
????????}??
????????if?(pIPAddrTable?==?NULL)?{??
????????????printf(“GetIpAddrTable()函數(shù)內(nèi)存分配失敗\n“);??
????????????exit(1);??
????????}??
????}??
????//?第2次調(diào)用GetIpAddrTable()函數(shù),獲取實(shí)際數(shù)據(jù)??
????if?(?(dwRetVal?=?GetIpAddrTable(?pIPAddrTable?&dwSize?0?))?!=?NO_ERROR?)?{???
????????printf(“GetIpAddrTable()調(diào)用失敗:?%d\n“?dwRetVal);??
????????if?(FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER?|?FORMAT_MESSAGE_FROM_SYSTEM?|?FORMAT_MESSAGE_IGNORE_INSERTS?NULL???
???????????????????dwRetVal?MAKELANGID(LANG_NEUTRAL?SUBLANG_DEFAULT)(LPTSTR)?&?lpMsgBuf?0?NULL))?{??
????????????printf(“\t錯(cuò)誤信息:?%s“?lpMsgBuf);??
????????????LocalFree(lpMsgBuf);??
????????}??
????????exit(1);??
????}??

printf(“\t本機(jī)端口號:8888\n\n“);

????for?(int?i=0;?i?dwNumEntries;?i++)?
{?
????????IPAddr.S_un.S_addr?=?(u_long)?pIPAddrTable->table[i].dwAddr;??
????????printf(“\tIP地址??[%d]:?????\t%s\n“?i?inet_ntoa(IPAddr)?);??
????????IPAddr.S_un.S_addr?=?(u_long)?pIPAddrTable->table[i].dwMask;??
????????printf(“\t子網(wǎng)掩碼[%d]:????\t%s\n“?i?inet_ntoa(IPAddr)?);??
????????IPAddr.S_un.S_addr?=(?(u_long)?pIPAddrTable->table[i].dwAddr?&?pIPAddrTable->table[i].dwMask)|(~pIPAddrTable->table[i].dwMask);??
????????printf(“\t廣播地址[%d]:??????\t%s?(%ld%)\n“?i?inet_ntoa(IPAddr)?pIPAddrTable->table[i].dwBCastAddr);??
printf(“\n“);??????
}

printf(“-----------------------------------------------------------\n\n“);

return?0;
}
int?main(int?argc?char*?argv[])
{
//初始化WSA
????WORD?socketVersion?=?MAKEWORD(22);??
????WSADATA?wsaData;
????if(WSAStartup(socketVersion?&wsaData)?!=?0)
????{
????????return?0;
????}
??
printf(“\n======================歡迎進(jìn)入模擬聊天室====================\n\n“);
printf(“------首先請您輸入您要偵聽的端口號,以方便查看聊天記錄------\n\n“);

GetIpAddrTableFunction();

//創(chuàng)建一個(gè)隱藏進(jìn)程
STARTUPINFO?si?=?{?sizeof(si)?};
????PROCESS_INFORMATION?pi;
si.dwFlags?=?STARTF_USESHOWWINDOW;
si.wShowWindow

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件?????311296??2017-03-29?23:19??151002525_滑蕊_課程設(shè)計(jì)\151002525_滑蕊_實(shí)驗(yàn)報(bào)告.doc

?????文件??????36352??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\Debug\MyClient.exe

?????文件?????396056??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\Debug\MyClient.ilk

?????文件?????683008??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\Debug\MyClient.pdb

?????文件??????31232??2016-06-24?02:43??151002525_滑蕊_課程設(shè)計(jì)\MyClient\Debug\_chat.exe

?????文件???47644672??2017-05-13?15:09??151002525_滑蕊_課程設(shè)計(jì)\MyClient\ipch\myclient-1d103d2e\myclient-7d3df811.ipch

?????文件???????9372??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Client.cpp

?????文件???????3442??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\cl.command.1.tlog

?????文件?????138248??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\CL.read.1.tlog

?????文件???????2120??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\CL.write.1.tlog

?????文件??????78886??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\Client.obj

?????文件???????7206??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\link.command.1.tlog

?????文件??????17992??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\link.read.1.tlog

?????文件???????3700??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\link.write.1.tlog

?????文件???????2746??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\mt.command.1.tlog

?????文件???????4100??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\mt.read.1.tlog

?????文件???????2890??2017-03-29?21:57??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\mt.read.2.tlog

?????文件???????1678??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\mt.write.1.tlog

?????文件????????381??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\MyClient.exe.intermediate.manifest

?????文件????????115??2017-05-13?15:42??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\MyClient.lastbuildstate

?????文件????????995??2017-05-13?15:42??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\MyClient.log

?????文件????????713??2017-03-29?14:09??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\MyClient.vcxprojResolveAssemblyReference.cache

?????文件??????????0??2017-03-29?13:31??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\MyClient.write.1.tlog

?????文件????1305600??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\vc100.idb

?????文件?????323584??2017-05-13?14:40??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\Debug\vc100.pdb

?????文件???????3224??2017-03-29?13:31??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\MyClient.vcxproj

?????文件????????944??2017-03-29?13:31??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\MyClient.vcxproj.filters

?????文件????????143??2017-03-29?13:21??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient\MyClient.vcxproj.user

?????文件???31805440??2017-05-13?16:04??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient.sdf

?????文件????????891??2017-03-29?13:21??151002525_滑蕊_課程設(shè)計(jì)\MyClient\MyClient.sln

............此處省略134個(gè)文件信息

評論

共有 條評論

相關(guān)資源