专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C语言

用MFC socket 传输MP3文件 用什么函数如何传

发布时间:2011-06-28 14:03:09 文章来源:www.iduyao.cn 采编人员:星星草
用MFC socket 传输MP3文件 用什么函数怎么传
MP3文件比较大,不知道用什么方法传过去,要有详细的方案程序!
我的是这样写的:调不出来()

代码如下:void CP2PView::Onsoc(WPARAM wParam,LPARAM lParam)
{  
char cs[100]={0},cs1[10000]={0},ch='0';
switch (lParam)

{
  case FD_ACCEPT:
{
s = accept(ServerSock,NULL,NULL);
AfxMessageBox("连接成功");
  CString d="";
send(s,d.GetBuffer(0),d.GetLength(),0);
}
break;
   
  case FD_READ:

CString num="";

if(i1==1)
{
Onsockt();
}
else
{
recv(s,cs,100,NULL);
if(cs[0]!='s') //客户端发送文件指令
{
AfxMessageBox("发送指令错误");
}
else
{
num+="向您发送文件";
num+="\r\n";
AfxMessageBox(num);
if(MessageBox("是否接收文件")==IDOK)
{
i1=1;
}
else
{
  send(s,"不同意接收文件",sizeof("不同意接收文件"),0);
return ;
}
}

}
}
break;
}
}

接收端如下:
 
CString strpath="MP3文件(*.txt)|*.txt||";
CString num1="";
CFileDialog filed(false,NULL,NULL,OFN_HIDEREADONLY,strpath,NULL);
filed.m_ofn.lpstrTitle="选择接收文件所保存的位置";
if(filed.DoModal()==IDOK)
{
POSITION pt=filed.GetStartPosition();
CString path=filed.GetNextPathName(pt);
CFile file(path,CFile::modeCreate|CFile::modeWrite);//创建文件对象
file.Seek(0,CFile::begin); //从文件结尾处移动文件指针
char cs1[2048]={0};
if(recv(ServerSock,cs1,2048,0)!=-1)
{
file.WriteHuge(&cs1,2048);
file.Flush();
GetDlgItem(IDC_EDIT1)->GetWindowText((LPTSTR)cs1,10000);
num1+=(LPTSTR)cs1;
num1+="\r\n";
num1="文件接收完成,并存放于:";
num1+=file.GetFilePath();
num1+="\r\n";
GetDlgItem(IDC_EDIT1)->SetWindowText(num1);
}
i1=0;
file.Close();
}
}




发送端: switch(lParam)
 
 void CMyDlg::Onsockt1(WPARAM wParam,LPARAM lParam)
 { 
switch(lParam)
 
 { 
case FD_READ://设置读取事件
   
char s2[1000]={0},ssa[20000];
recv(s,s2,1000,0);
CString data="";
sockaddr_in add;
::memset(&add,0,sizeof(add));
::getpeername(s,(SOCKADDR*)&add,(int*)sizeof(SOCKADDR));
GetDlgItem(IDC_EDIT1)->GetWindowText((LPTSTR)ssa,20000);
  data+=(LPTSTR)ssa;
data+="\r\n";
data+=::inet_ntoa(add.sin_addr);
data+="对您说:";
data+=s2;
GetDlgItem(IDC_EDIT1)->SetWindowText(data);
 }
}


没有有好用的方法,这个不能用。很紧急。。。

------解决方案--------------------
就像传输文件一样,一段一段的穿。自己单步调试下看看
------解决方案--------------------
lz不会被MFC洗脑了吧,什么都专门的函数?
1#说的不错。传文件都一样。把文件分段,一段段传,基本操作也就是ReadFile,和WriteFile。和基本socket、
也可以试试TransmitFile、
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: