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

  • 大小: 5.42MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2023-09-26
  • 語言: C/C++
  • 標簽: socket,MFC??

資源簡介

用MFC實現服務端與客戶端之間的文件傳輸,可支持上傳下載,采用多線程控制,并可實現多個客戶端連接一個服務器

資源截圖

代碼片段和文件信息

//////////////////////////////////////////////////
//?TCPServer.cpp文件


#include?“InitSock.h“
#include?
#include??
#include?

CInitSock?initSock; //?初始化Winsock庫

#define?M_SIZE?1024

typedef?struct??//定義回調函數參數結構體
{
????SOCKET?sClient;
????char?filepath[100];
char?ipAddress[20];
char?_fileArray[1000];
}threadInfo;


void?ThreadFunc(?LPVOID?lpParam?)?//回調函數
{
????char?sendBuf[M_SIZE];
char?recvBuf[M_SIZE];
char?filename[100];
char?filepath[100];
char?_fileArray[1000];
FILE?*fp;
int?n;
size_t?ret;
long?file_size?=?0;
char?file_size_c[20];
????SOCKET?sClient;?
int?len;

threadInfo*?pInfo=(threadInfo*)lpParam;//提取參數信息
????sClient?=?pInfo?->sClient;
strcpy(filepath?pInfo?->filepath);
strcpy(_fileArray?pInfo?->_fileArray);
sprintf(sendBuf“IP地址:?%s?“?pInfo?->ipAddress?);

????send(sClient?sendBuf?strlen(sendBuf)+1?0);//發送信息到客戶端
????recv(sClientrecvBufM_SIZE0);//接收客戶端數據,這里接到的是操作標識

switch(recvBuf[0])?
{
case?‘U‘:
{
printf(“IP為%s請求上傳服務;\n“pInfo?->ipAddress);
????//接收文件名
recv(sClientfilename1000);
int?size?=?0;
strcat(?filepath?“\\“);
strcat(?filepath?filename?);

if((fp?=?fopen(filepath“wb“))?==?NULL)
{
return?;
}

while(1)
{
//接收文件
????????????????ret=recv(sClientrecvBufM_SIZE0);
if(ret?==?0)
{
break;
}
fwrite(recvBuf1retfp);
size?+=?ret;
}
printf(“文件%s上傳完成大小為%d?byte\n“filename?size);
fclose(fp);
}
break;
case?‘D‘:
{
printf(“IP為%s請求下載服務;\n“pInfo?->ipAddress?);
recv(sClientfilename1000);

strcat(?filepath?“\\“);
strcat(?filepath?filename?);

if((fp=fopen(filepath“rb“))==NULL)
closesocket(sClient);??//如果請求的文件不存在,則關閉連接
else
{
fseek(fp0SEEK_END);??//獲取文件大小然后發給客戶端
file_size?=?ftell(fp);
fseek(fp0SEEK_SET);
_i64toa(?file_size?file_size_c?10?);//將int(file_size)轉化為string(file_size_c)10進制
send(sClient?file_size_c?strlen(file_size_c)?+?1?0);//發送文件大小?
printf(“下載文件%s,大小為?%s?byte\n“filename?file_size_c);

while(1)
{
n=fread(sendBuf1M_SIZEfp);
if(n?==?0)
{
break;
}
send(sClientsendBufn0);//發送文件給客戶端
}
fclose(fp);
}
}

break;
case?‘Q‘:
{
printf(“IP為%s請求查詢服務;\n“pInfo?->ipAddress);
while(1)
{

len?=?send(sClient?_fileArray?strlen(_fileArray)+1?0);?//把共享路徑的所有文件名發給客戶端
if(len?==?-1)
{
break;
}
}
}
break;
default:
break;

}
????closesocket(sClient);
}

//socket
SOCKET?create_socket()
{
//?創建套節字
SOCKET?sListen?=?::socket(AF_INET?SOCK_STREAM?IPPROTO_TCP);
if(sListen?==?INVALID_SOCKET)
{
printf(“Failed?socket()?\n“);
return?0;
}

//?填充sockaddr_in結構
sockaddr_in?sin;
sin.sin_family?=?AF_INET;
sin.sin_port?=?htons(6000);
sin.sin_addr.S_un.S_addr?=?INADDR_ANY;

//?綁定這個套節字到一個本

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????1975296??2012-08-16?08:37??TCP有界面\TCPServer\Debug\TCPServer.bsc

?????文件?????204901??2012-08-16?08:37??TCP有界面\TCPServer\Debug\TCPServer.exe

?????文件?????234736??2012-08-16?08:37??TCP有界面\TCPServer\Debug\TCPServer.ilk

?????文件??????25550??2012-08-16?08:37??TCP有界面\TCPServer\Debug\TCPServer.obj

?????文件??????43520??2011-08-01?20:25??TCP有界面\TCPServer\Debug\TCPServer.opt

?????文件????4653492??2012-08-16?08:37??TCP有界面\TCPServer\Debug\TCPServer.pch

?????文件?????451584??2012-08-16?08:37??TCP有界面\TCPServer\Debug\TCPServer.pdb

?????文件??????????0??2012-08-16?08:37??TCP有界面\TCPServer\Debug\TCPServer.sbr

?????文件?????148480??2012-08-17?11:13??TCP有界面\TCPServer\Debug\vc60.idb

?????文件??????77824??2012-08-16?08:37??TCP有界面\TCPServer\Debug\vc60.pdb

?????文件????????512??2011-08-02?08:41??TCP有界面\TCPServer\initCriticalSection.h

?????文件????????461??2005-07-19?21:30??TCP有界面\TCPServer\initsock.h

?????文件???????5447??2012-08-15?08:32??TCP有界面\TCPServer\TCPServer.cpp

?????文件???????4455??2011-08-03?12:53??TCP有界面\TCPServer\TCPServer.dsp

?????文件????????541??2005-07-21?12:47??TCP有界面\TCPServer\TCPServer.dsw

?????文件??????91136??2012-08-17?11:30??TCP有界面\TCPServer\TCPServer.ncb

?????文件??????48640??2012-08-17?11:30??TCP有界面\TCPServer\TCPServer.opt

?????文件????????252??2012-08-17?11:13??TCP有界面\TCPServer\TCPServer.plg

?????文件??????12586??2011-08-03?17:17??TCP有界面\UIClient\Debug\RCa00436

?????文件?????105948??2012-08-16?08:37??TCP有界面\UIClient\Debug\StdAfx.obj

?????文件????1375061??2012-08-16?08:37??TCP有界面\UIClient\Debug\StdAfx.sbr

?????文件????3261440??2012-08-16?09:31??TCP有界面\UIClient\Debug\UIClient.bsc

?????文件?????118883??2012-08-16?09:31??TCP有界面\UIClient\Debug\UIClient.exe

?????文件?????251584??2012-08-16?09:31??TCP有界面\UIClient\Debug\UIClient.ilk

?????文件??????20229??2012-08-16?08:37??TCP有界面\UIClient\Debug\UIClient.obj

?????文件????6878208??2012-08-16?08:37??TCP有界面\UIClient\Debug\UIClient.pch

?????文件?????394240??2012-08-16?09:31??TCP有界面\UIClient\Debug\UIClient.pdb

?????文件???????3216??2012-08-16?08:37??TCP有界面\UIClient\Debug\UIClient.res

?????文件??????????0??2012-08-16?08:37??TCP有界面\UIClient\Debug\UIClient.sbr

?????文件??????58144??2012-08-16?09:31??TCP有界面\UIClient\Debug\UIClientDlg.obj

............此處省略31個文件信息

評論

共有 條評論

相關資源