18,356
社区成员
发帖
与我相关
我的任务
分享
CFile file;
if(!file.Open(m_strPathName, CFile::modeRead | CFile::typeBinary))
{
AfxMessageBox("打开文件失败");
return ;
}
//假设一次读完,当然大文件得循环读,此处只为测试
ilen = file.Read(bufx, 1134);//ilen = file.Read((void*)bufx, 1134);
void CTest2Dlg::OnBtnSend()
{
// TODO: Add your control notification handler code here
WORD wVersionRequested;
WSADATA wsadata;
wVersionRequested = MAKEWORD(2,2);
int nErrCode;
nErrCode = WSAStartup(MAKEWORD(2,2),&wsadata);
if (0 != nErrCode)
{
//没有找到可用的套接字
AfxMessageBox("没有找到可用的DLL");
}
SOCKET socket1;
socket1 = socket(AF_INET,SOCK_DGRAM,0);
SOCKADDR_IN sockaddr_in1;
ZeroMemory(bufx,1024);
sockaddr_in1.sin_addr.s_addr=inet_addr("127.0.0.1");
sockaddr_in1.sin_family=AF_INET;
sockaddr_in1.sin_port=htons((short)8000);
long iLength;
iLength = sendto(socket1,bufx,1134,0,(SOCKADDR*)&sockaddr_in1,sizeof(sockaddr_in1));
}
下面是接收的代码:
void CServerDlg::OnBtnRecv()
{
// TODO: Add your control notification handler code here
SOCKADDR_IN sockaddr_in1;
SOCKET socket1;
// char buf[2048];
int nClientLen;
WORD wVersionRequested;
WSADATA wsadata;
wVersionRequested = MAKEWORD(2,2);
int nErrCode;
nErrCode = WSAStartup(MAKEWORD(2,2),&wsadata);
if (0 != nErrCode)
{
//没有找到可用的套接字
//MessageBox(NULL,"没有找到可用的DLL","初始化失败",MB_OK);
}
sockaddr_in1.sin_addr.s_addr=htonl(INADDR_ANY);
sockaddr_in1.sin_family=AF_INET;
sockaddr_in1.sin_port=htons((short)8000);
nClientLen = sizeof(sockaddr_in1);
socket1 = socket(AF_INET,SOCK_DGRAM,0);
bind(socket1,(SOCKADDR*)&sockaddr_in1,nClientLen);
memset(buf,0,sizeof(buf));
iLengthRecv = recvfrom(socket1,buf,sizeof(buf),0,(SOCKADDR*)&sockaddr_in1,&nClientLen);
CString m_strFilePath;
m_strFilePath="c:\\123.jpg";
UINT rcv;
//接受并保存文件。
CFile file(m_strFilePath, CFile::modeCreate | CFile::modeWrite);
file.Write(buf, iLengthRecv);//把接收缓冲区原封不动的存为文件
file.Close();
}