CSocket编的图象传送程序只能传几次,接收端就无法再接收了,为什么? 我采用CSocket编了一个图象传送的程序,如果客户机和服务器在一个局域网内(或者就是同一台机器),传个几次后接收端就无法再接收了,只能关闭连接后再重新连接后发送.总之不稳定,好象接收方就不再进入OnReceice()函数一样,不知是什么原因? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码是在chatter和chatsvr基础上改的,定时1s发一副图片,发送用CArchive.Write();接收用CArchive.Read();加了握手。 void CMsg::Serialize(CArchive& ar){ if (ar.IsStoring()) //发送 { ar << (WORD)m_bClose; //结束标志 ar << (WORD)m_wMsgType; //消息类型 if(m_wMsgType == 0) //string { ar << m_strText; m_msgList.Serialize(ar); } else if(m_wMsgType == 1) //二进制文件 { ar << (DWORD)m_dwMsgLen; //长度 TRACE("\n Msg Len: %ld",m_dwMsgLen); ar.Write(m_pbMsgContent, m_dwMsgLen); } } else //接收 { WORD wd; ar >> wd; m_bClose = (BOOL)wd; //结束标志 ar >> wd; m_wMsgType = wd; //消息类型 if(m_wMsgType == 0) //string { ar >> m_strText; m_msgList.Serialize(ar); } else if(m_wMsgType == 1) //二进制文件 { ar >> (DWORD)m_dwMsgLen; //长度 m_pbMsgContent = new BYTE [m_dwMsgLen]; ar.Read(m_pbMsgContent, m_dwMsgLen); //写文件 CFile SaveFile; SaveFile.Open("d:\\rev.jpg", CFile::modeCreate | CFile::modeWrite | CFile::shareDenyWrite); SaveFile.Write(m_pbMsgContent, m_dwMsgLen); SaveFile.Close(); delete m_pbMsgContent; } } } new year happy? 为什么我对控件进行了数字签名,但是还是显示不了呢,为什么呢? 如果使用catch(...)捕捉到异常后,怎样知道具体的异常信息? 请教:广域网之间用SOCKET API为何连接不上,返回连接超时(10060); 大家帮个忙啊,谢谢 请问软件没有源代码可以汉化吗?如何汉化呀? 救命啊~~——一个单文档多视区的问题 简单问题,知道的帮帮忙! 急问!!!!!!!!在vc++ 中使用ado连接数据库中如何删除表中字段? 如何扫描多个串口? 泼你们冷水:/ATL/WTL开发COM没前途 一个关于CListCtrl的Item文字显示问题
{
if (ar.IsStoring()) //发送
{
ar << (WORD)m_bClose; //结束标志
ar << (WORD)m_wMsgType; //消息类型
if(m_wMsgType == 0) //string
{
ar << m_strText;
m_msgList.Serialize(ar);
}
else if(m_wMsgType == 1) //二进制文件
{
ar << (DWORD)m_dwMsgLen; //长度
TRACE("\n Msg Len: %ld",m_dwMsgLen); ar.Write(m_pbMsgContent, m_dwMsgLen);
}
}
else //接收
{
WORD wd;
ar >> wd;
m_bClose = (BOOL)wd; //结束标志
ar >> wd;
m_wMsgType = wd; //消息类型 if(m_wMsgType == 0) //string
{
ar >> m_strText;
m_msgList.Serialize(ar);
}
else if(m_wMsgType == 1) //二进制文件
{
ar >> (DWORD)m_dwMsgLen; //长度
m_pbMsgContent = new BYTE [m_dwMsgLen];
ar.Read(m_pbMsgContent, m_dwMsgLen); //写文件
CFile SaveFile;
SaveFile.Open("d:\\rev.jpg", CFile::modeCreate | CFile::modeWrite | CFile::shareDenyWrite);
SaveFile.Write(m_pbMsgContent, m_dwMsgLen);
SaveFile.Close(); delete m_pbMsgContent;
} }
}