Server 端 发送文件
Client 接受文件
想将Client的接受文件代码放到一个线程中!
不放进线程的时候可以成功传输,放进来就出错(运行时)!
请教高手们指点指点!很郁闷,这是我的毕业设计,请大家帮帮忙了!谢谢!
(ps我第一次发帖不知道怎么给分,大家顺便告诉我谢谢!)Server的发送程序 CFile myFile;
if(!myFile.Open("c:\\abc.bmp", CFile::modeRead | CFile::typeBinary))
{
AfxMessageBox("文件不存在!",MB_OK|MB_ICONERROR);
return;
}
SOCKET_STREAM_FILE_INFO StreamFileInfo;
WIN32_FIND_DATA FindFileData;
FindClose(FindFirstFile("c:\\abc.bmp",&FindFileData));
memset(&StreamFileInfo,0,sizeof(SOCKET_STREAM_FILE_INFO));
strcpy(StreamFileInfo.szFileTitle,myFile.GetFileTitle());
StreamFileInfo.dwFileAttributes = FindFileData.dwFileAttributes;
StreamFileInfo.ftCreationTime = FindFileData.ftCreationTime;
StreamFileInfo.ftLastAccessTime = FindFileData.ftLastAccessTime;
StreamFileInfo.ftLastWriteTime = FindFileData.ftLastWriteTime;
StreamFileInfo.nFileSizeHigh = FindFileData.nFileSizeHigh;
StreamFileInfo.nFileSizeLow = FindFileData.nFileSizeLow;
sockRecv1.Send(&StreamFileInfo,sizeof(SOCKET_STREAM_FILE_INFO));
UINT dwRead=0;
while(dwRead<StreamFileInfo.nFileSizeLow)
{
byte* data = new byte[1024];
UINT dw=myFile.Read(data, 1024);
sockRecv1.Send(data, dw);
dwRead+=dw;
}
myFile.Close();Client的接受程序!!!!!!!!!!!!!!!!!!!!!!!
就是它惹的祸!!!!!!!!!!!!!!!!!!!!
不放尽心的进程是好使的!放进去就运行出错!
SOCKET_STREAM_FILE_INFO StreamFileInfo;
sockClient1.Receive(&StreamFileInfo,sizeof(SOCKET_STREAM_FILE_INFO)); //接受相关文件信息
CFile destFile("d:\\abc.bmp", CFile::modeCreate | CFile::modeWrite | CFile::typeBinary);
UINT dwRead = 0;
while(dwRead<StreamFileInfo.nFileSizeLow)
{
byte* data = new byte[1024];
memset(data,0,1024);
UINT dw=sockClient1.Receive(data, 1024);
destFile.Write(data, dw);
dwRead+=dw;
}
SetFileTime((HANDLE)destFile.m_hFile,&StreamFileInfo.ftCreationTime,
&StreamFileInfo.ftLastAccessTime,&StreamFileInfo.ftLastWriteTime);
destFile.Close();
SetFileAttributes("d:\\abc.bmp",StreamFileInfo.dwFileAttributes);谢谢各位了!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货