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

  • 大小: 7.48MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-09-26
  • 語言: 其他
  • 標簽: UDP??文件傳輸??TCP??

資源簡介

本文件為TCP/IP課程作業,局域網中基于UDP協議的文件傳輸,本程序為dos窗口命令行操作,全部代碼均為自己編寫,無抄襲 文件中包含:源文件+可執行文件+實驗報告

資源截圖

代碼片段和文件信息

#include
#include

#pragma?comment(lib?“WS2_32“)

#define?DEFAULT_PORT?5050 //?服務器端口號為5050

char*?strchop(char*??char);//獲取路徑中的文件名稱
struct?data_packet?
{
int?size;?//發送/接收的文件的大小
int?dp_size;?//一個數據包的大小
int?id;???//數據包的標志
char?data[1024];//數據包中的數據流
char?name[100];//文件名稱
};

void?main(int?argc?char?*argv[])
{
WSADATA?wsaData;
SOCKET?sClient;

if?(WSAStartup(MAKEWORD(2?2)?&wsaData)?!=?0)?{
printf(“Failed?to?load?Winsock.\n“);
return;
}

int?iLen; //?服務器地址長度
int?iSend;
struct?data_packet?csend_data?=?{0?0?0};
struct?sockaddr_in?ser; //?服務器端地址
//?建立客戶端數據報套接口
sClient?=?socket(AF_INET?SOCK_DGRAM?0);
if?(sClient?==?INVALID_SOCKET)?{
printf(“socket()?failed:?%d\n“?WSAGetLastError());
return;
}
FILE*?cfile;
//獲取文件名字
char*?fpath?=?new?char[100];
char*?ip_addr?=?new?char[30];
char?yn;

printf(“輸入接收方IP地址:?\n“);
scanf(“%s“?ip_addr);

printf(“輸入發送文件的路徑:?\n“);
scanf(“%s“?fpath);
while(!(cfile?=?fopen(fpath?“rb“)))
{
printf(“文件路徑不存在,請重新輸入:?\n“);
scanf(“%s“?fpath);
}

printf(“確定發送文件[y/n]:“);
scanf(“%c“?&yn);
scanf(“%c“?&yn);
//printf(“test“);
while(yn?!=?‘n‘?&&?yn?!=?‘y‘)
{
printf(“參數錯誤,請重新輸入\n“);
printf(“確定發送文件[y/n]:“);
scanf(“%c“?&yn);
scanf(“%c“?&yn);
}
while(yn?==?‘n‘)
{
printf(“輸入接收方IP地址:?\n“);
scanf(“%s“?ip_addr);

printf(“輸入發送文件的路徑:?\n“);
scanf(“%s“?fpath);
while(!(cfile?=?fopen(fpath?“rb“)))
{
printf(“文件路徑不存在,請重新輸入:?\n“);
scanf(“%s“?fpath);
}
printf(“確定發送文件[y/n]:“);
scanf(“%c“?&yn);
scanf(“%c“?&yn);
while(yn?!=?‘n‘?&&?yn?!=?‘y‘)
{
printf(“參數錯誤,請重新輸入\n“);
printf(“確定發送文件[y/n]:“);
scanf(“%c“?&yn);
}
}

char*?fname?=?strchop(fpath?‘\\‘);
//printf(“fname:?%s\n“?fname);
strcat(csend_data.name?fname);?
fseek(cfile?0?SEEK_END);
csend_data.size?=?ftell(cfile);//獲取發送文件的大小
csend_data.dp_size?=?1024;//每個數據包大小為1024byte
rewind(cfile);

//?建立服務器端地址
ser.sin_family?=?AF_INET;
ser.sin_port?=?htons(DEFAULT_PORT);
ser.sin_addr.s_addr?=?inet_addr(ip_addr);
iLen?=?sizeof(ser);
//?向服務器發送數據
printf(“文件大小:%d\n“?((csend_data.size?/?csend_data.dp_size)?+?1));
printf(“文件發送中...?\n“);
for(int?i?=?1;?i?<=?((csend_data.size?/?csend_data.dp_size)?+?1);?i++)
{
fread(csend_data.data?sizeof(char)?1024?cfile);
csend_data.id?=?i;
iSend?=?sendto(sClient?(char*)(&csend_data)?sizeof(csend_data)?0?(struct?sockaddr*)&ser?iLen);
if?(iSend?==?SOCKET_ERROR)?{
printf(“sendto()?failed:?%d\n“?WSAGetLastError());
system(“pause“);
return;
}
else?if?(iSend?==?0)
return;
else
{
?printf(“-“);
}
}
printf(“?發送成功!\n“);
//system(“pause“);
//return;

char*?recv_buf?=?new?char[100];
memset(recv_buf?0?sizeof(char)?*?100);
//?從服務器接收數據
int?iRecv?=?recvfrom(sClient?recv_buf?sizeof(char)?*?100?0?(struct?sockaddr*)&ser?&iLen);
if?(iRecv?==?SOCKET_ERROR)?{
printf(“rec

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-09-06?10:33??TCP_IP第一次實驗_UDP\
?????目錄???????????0??2014-04-09?14:34??TCP_IP第一次實驗_UDP\client\
?????目錄???????????0??2014-04-09?14:46??TCP_IP第一次實驗_UDP\client\client\
?????文件????10931200??2014-04-09?14:46??TCP_IP第一次實驗_UDP\client\client.ncb
?????文件?????????884??2014-04-06?11:55??TCP_IP第一次實驗_UDP\client\client.sln
?????文件????????9728??2014-04-09?14:46??TCP_IP第一次實驗_UDP\client\client.suo
?????文件???????37189??2014-04-05?12:44??TCP_IP第一次實驗_UDP\client\client\1.JPG
?????文件????????3914??2014-04-06?11:56??TCP_IP第一次實驗_UDP\client\client\client.vcproj
?????文件????????1411??2014-04-09?14:46??TCP_IP第一次實驗_UDP\client\client\client.vcproj.idea-PC.user.user
?????目錄???????????0??2014-04-08?22:23??TCP_IP第一次實驗_UDP\client\client\Debug\
?????文件???????17058??2014-04-08?22:23??TCP_IP第一次實驗_UDP\client\client\Debug\BuildLog.htm
?????文件?????????663??2014-04-06?11:56??TCP_IP第一次實驗_UDP\client\client\Debug\client.exe.embed.manifest
?????文件?????????728??2014-04-06?11:56??TCP_IP第一次實驗_UDP\client\client\Debug\client.exe.embed.manifest.res
?????文件?????????621??2014-04-08?22:23??TCP_IP第一次實驗_UDP\client\client\Debug\client.exe.intermediate.manifest
?????文件???????34442??2014-04-08?22:23??TCP_IP第一次實驗_UDP\client\client\Debug\main.obj
?????文件??????????65??2014-04-08?22:23??TCP_IP第一次實驗_UDP\client\client\Debug\mt.dep
?????文件??????437248??2014-04-08?22:23??TCP_IP第一次實驗_UDP\client\client\Debug\vc90.idb
?????文件??????110592??2014-04-08?22:23??TCP_IP第一次實驗_UDP\client\client\Debug\vc90.pdb
?????文件????????4053??2014-04-09?14:46??TCP_IP第一次實驗_UDP\client\client\main.cpp
?????文件??????283728??2014-04-07?21:54??TCP_IP第一次實驗_UDP\client\client\test_0_1.txt
?????目錄???????????0??2014-04-08?14:08??TCP_IP第一次實驗_UDP\client\Debug\
?????文件???????31744??2014-04-08?22:23??TCP_IP第一次實驗_UDP\client\Debug\client.exe
?????文件??????498728??2014-04-08?22:23??TCP_IP第一次實驗_UDP\client\Debug\client.ilk
?????文件??????510976??2014-04-08?22:23??TCP_IP第一次實驗_UDP\client\Debug\client.pdb
?????目錄???????????0??2014-04-09?14:32??TCP_IP第一次實驗_UDP\server\
?????目錄???????????0??2014-04-08?14:08??TCP_IP第一次實驗_UDP\server\Debug\
?????文件???????37888??2014-04-07?22:05??TCP_IP第一次實驗_UDP\server\Debug\1.jpg
?????文件???????32256??2014-04-09?14:44??TCP_IP第一次實驗_UDP\server\Debug\server.exe
?????文件??????487792??2014-04-09?14:44??TCP_IP第一次實驗_UDP\server\Debug\server.ilk
?????文件??????494592??2014-04-07?22:01??TCP_IP第一次實驗_UDP\server\Debug\server.pdb
?????目錄???????????0??2014-04-09?14:44??TCP_IP第一次實驗_UDP\server\server\
............此處省略17個文件信息

評論

共有 條評論