UINT RecvFunc( LPVOID pParam )
{
CString strIP;
CString strPort;
CSendFileDlg * dlg=(CSendFileDlg *)pParam;
(dlg->GetDlgItem(IDC_BUTTON_RECEIVE))->EnableWindow(FALSE);//???
dlg->GetDlgItemText(IDC_IPADDRESS1, strIP);//??????
dlg->GetDlgItemText(IDC_PORT1, strPort);
dlg->cliSock.Create();
if(!dlg->cliSock.Connect((LPCTSTR)strIP,6000))//建立連接
{
AfxMessageBox("連接失敗 !");
dlg->cliSock.Close();
(dlg->GetDlgItem(IDC_BUTTON_RECEIVE))->EnableWindow(TRUE);
dlg=NULL;
theRecv=NULL;
return -1;
}
SOCKET_STREAM_FILE_INFO StreamFileInfo1;
dlg->cliSock.Receive(&StreamFileInfo1,sizeof(SOCKET_STREAM_FILE_INFO));
CFile myFile;
myFile.Open(StreamFileInfo1.szFileTitle, CFile::modeCreate | CFile::modeWrite | CFile::typeBinary);//打開或創建檔案
AfxMessageBox(StreamFileInfo1.szFileTitle);
UINT nSize=0;
UINT nData=https://bbs.csdn.net/topics/0;
while (nSize < StreamFileInfo1.nFileSizeLow)
{
//byte * szBuf=new byte[1024];
char * szBuf=new char[1024];
nData=https://bbs.csdn.net/topics/dlg->cliSock.Receive(szBuf, 1024);
myFile.Write(szBuf, nData);//將內容寫到檔案中
nSize+=nData;
}
SetFileTime((HANDLE)myFile.m_hFile,&StreamFileInfo1.ftCreationTime,
&StreamFileInfo1.ftLastAccessTime,&StreamFileInfo1.ftLastWriteTime);
myFile.Close();
SetFileAttributes(StreamFileInfo1.szFileTitle,StreamFileInfo1.dwFileAttributes);
dlg->cliSock.Close();
AfxMessageBox("接收完畢!");
(dlg->GetDlgItem(IDC_BUTTON_RECEIVE))->EnableWindow(TRUE);
theRecv=NULL;//??
dlg=NULL;
return 0;
}
uj5u.com熱心網友回復:
不知道有多少前人掉在TCP Socketsend(人多)send(病少)send(財富)
recv(人多病)recv(少財富)
陷阱里面啊!
http://bbs.csdn.net/topics/380167545
uj5u.com熱心網友回復:
建議使用異步方式轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/103875.html
標籤:網絡編程
