資源簡介
華南理工大學計算機網絡小班教學實驗報告2-4,實驗時間是2019
實驗二 網絡報文抓取與分析
實驗三 路由器的基本操作
實驗四 組網實驗
代碼片段和文件信息
/*
Socket客戶端代碼
服務器127.0.0.1通信,端口8888
建立連接后,發送給服務器,需要傳輸的文件路徑
若文件路徑存在,接收服務器發送的文件流,發送完畢則關閉連接。
*/
#include?
#include?
#include?
#include???
#include???
#include?
#pragma?comment(lib“ws2_32.lib“)
#define?BUFFER_SIZE?2048
#define?FILE_NAME_MAX_SIZE?512?
int?main(int?argc?char*?argv[])
{
/*
初始化WSA,使得程序可以調用windows?socket
*/
WORD?sockVersion?=?MAKEWORD(2?2);
WSADATA?wsaData;
if?(WSAStartup(sockVersion?&wsaData)?!=?0)
{
return?0;
}
/*
創建監聽用套接字,server_socket
并檢測是否創建成功
*/
SOCKET?client_socket?=?socket(AF_INET?SOCK_STREAM?IPPROTO_TCP);?;
if?(client_socket?==?INVALID_SOCKET)?{
//如果創建的socket無效,則結束程序
perror(“socket?error?!“);
return?0;
}
/*
創建地址結構,server_addr,并設置端口和IP
*/
sockaddr_in?server_addr;
memset(&server_addr?0?sizeof(server_addr));
server_addr.sin_family?=?AF_INET;
//要連接的服務器端口號?8888
server_addr.sin_port?=?htons(8888);
//指定服務器的地址127.0.0.1
InetPton(AF_INET?“127.0.0.1“?&server_addr.sin_addr.s_addr);
//與地址server_addr建立連接
if?(connect(client_socket?(SOCKADDR*)&server_addr?sizeof(SOCKADDR)))
{
perror(“connect?error?!\n“);
return?0;
}
char?REMOTE_file_name[FILE_NAME_MAX_SIZE?+?1];
memset(REMOTE_file_name?0?FILE_NAME_MAX_SIZE?+?1);
printf(“請輸入要獲取的服務器文件路徑:\n“);
scanf_s(“%s“?REMOTE_file_name?FILE_NAME_MAX_SIZE);
char?LOCAL_file_name[FILE_NAME_MAX_SIZE?+?1];
memset(LOCAL_file_name?0?FILE_NAME_MAX_SIZE?+?1);
printf(“請輸入保存文件的本地路徑:\n“);
scanf_s(“%s“?LOCAL_file_name?FILE_NAME_MAX_SIZE);
char?buffer[BUFFER_SIZE];
memset(buffer?0?BUFFER_SIZE);
strncpy_s(buffer?REMOTE_file_name?strlen(REMOTE_file_name)?>?BUFFER_SIZE???BUFFER_SIZE?:?strlen(REMOTE_file_name));
//?向服務器發送buffer中的數據?
if?(send(client_socket?buffer?BUFFER_SIZE?0)?0)
{
perror(“發送文件名失敗:“);
exit(1);
}
//?打開文件,準備寫入?
FILE?*fp;
errno_t?F_ERR?=?fopen_s(&fp?LOCAL_file_name?“wb“);
if?(F_ERR?!=?0)
{
printf(“文件打開失敗:%s\n“?LOCAL_file_name);
exit(1);
}
//?從服務器接收數據到buffer中?
//?每接收一段數據,便將其寫入文件中,循環直到文件接收完并寫完為止?
memset(buffer?0?BUFFER_SIZE);
int?length?=?0;
while?((length?=?recv(client_socket?buffer?BUFFER_SIZE?0))?>?0)
{
if?(fwrite(buffer?sizeof(char)?length?fp)?
{
printf(“文件寫入失敗:%s\n“?LOCAL_file_name);
break;
}
memset(buffer?0?BUFFER_SIZE);
}
printf(“\n成功從服務器接收文件\n存入本地目錄:%s\n“?REMOTE_file_name?LOCAL_file_name);
//?接收成功后,關閉文件,關閉socket、WSA?
fclose(fp);
closesocket(client_socket);
WSACleanup();
system(“pause“);
return?0;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-07-11?18:28??計網實驗\
?????文件?????1169268??2019-07-11?11:08??計網實驗\計網實驗3.doc
?????文件??????700671??2019-07-11?11:07??計網實驗\計網實驗4.doc
?????文件??????394943??2019-07-11?11:07??計網實驗\計網實驗2.docx
?????目錄???????????0??2019-06-29?13:18??計網實驗\PCT_Client\
?????目錄???????????0??2019-06-29?13:18??計網實驗\PCT_Client\.vs\
?????目錄???????????0??2019-06-29?13:18??計網實驗\PCT_Client\.vs\PCT_Client\
?????目錄???????????0??2019-06-29?13:18??計網實驗\PCT_Client\.vs\PCT_Client\v15\
?????文件???????18944??2019-06-29?01:13??計網實驗\PCT_Client\.vs\PCT_Client\v15\.suo
?????文件????34066432??2019-06-29?01:13??計網實驗\PCT_Client\.vs\PCT_Client\v15\Browse.VC.db
?????目錄???????????0??2019-06-29?13:18??計網實驗\PCT_Client\.vs\PCT_Client\v15\ipch\
?????目錄???????????0??2019-06-29?13:18??計網實驗\PCT_Client\.vs\PCT_Client\v15\ipch\AutoPCH\
?????目錄???????????0??2019-06-29?13:18??計網實驗\PCT_Client\.vs\PCT_Client\v15\ipch\AutoPCH\ed9a692236ba195b\
?????文件????44630016??2019-06-29?00:27??計網實驗\PCT_Client\.vs\PCT_Client\v15\ipch\AutoPCH\ed9a692236ba195b\源.ipch
?????目錄???????????0??2019-06-29?13:18??計網實驗\PCT_Client\Debug\
?????文件???????41472??2019-06-29?00:28??計網實驗\PCT_Client\Debug\PCT_Client.exe
?????文件??????375380??2019-06-29?00:28??計網實驗\PCT_Client\Debug\PCT_Client.ilk
?????文件??????471040??2019-06-29?00:28??計網實驗\PCT_Client\Debug\PCT_Client.pdb
?????目錄???????????0??2019-06-29?13:18??計網實驗\PCT_Client\PCT_Client\
?????目錄???????????0??2019-06-29?13:18??計網實驗\PCT_Client\PCT_Client\Debug\
?????文件?????????487??2019-06-29?00:28??計網實驗\PCT_Client\PCT_Client\Debug\PCT_Client.log
?????目錄???????????0??2019-06-29?13:18??計網實驗\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\
?????文件?????????660??2019-06-29?00:28??計網實驗\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\CL.command.1.tlog
?????文件???????26886??2019-06-29?00:28??計網實驗\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\CL.read.1.tlog
?????文件?????????504??2019-06-29?00:28??計網實驗\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\CL.write.1.tlog
?????文件?????????213??2019-06-29?00:28??計網實驗\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\PCT_Client.lastbuildstate
?????文件????????1158??2019-06-29?00:28??計網實驗\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\li
?????文件????????3794??2019-06-29?00:28??計網實驗\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\li
?????文件?????????488??2019-06-29?00:28??計網實驗\PCT_Client\PCT_Client\Debug\PCT_Client.tlog\li
?????文件??????248832??2019-06-29?00:28??計網實驗\PCT_Client\PCT_Client\Debug\vc141.idb
?????文件??????143360??2019-06-29?00:28??計網實驗\PCT_Client\PCT_Client\Debug\vc141.pdb
............此處省略44個文件信息
- 上一篇:基于ssm的家教管理系統
- 下一篇:永磁同步電機id=0控制,STM32F4程序
評論
共有 條評論