CArchive Flush不发送数据 [英] CArchive Flush is not sending data
问题描述
我正在使用CSocket,CSocketFile,CArchive创建一个简单的CHAT应用程序。最初它工作正常,但经过一些对话后,CArchive Flush不会发送数据。我调试了代码并发现在接收方,OnReceive在从发送方调用Flush后没有被调用。我很困惑,因为它可以工作一段时间,之后它不会发送数据。
这是我的代码
无法CChatDlg :: OnBnClickedBsend()
{
UpdateData(TRUE);
// m_strMessage与编辑框相关联 if(!m_strMessage.IsEmpty())
{
    m_bISFileTransfer = false;
&NBSP;&NBSP;&NBSP; //现在填写档案馆 &NBSP;&NBSP;&NBSP; *(m_ptrArIn)<< m_bISFileTransfer;
&NBSP;&NBSP;&NBSP;
&NBSP;&NBSP;&NBSP; *(m_ptrArIn)<< m_strMessage;
&NBSP;&NBSP;&NBSP;
&NBSP;&NBSP;&NBSP; //发送邮件
&NBSP;&NBSP;&NBSP; m_ptrArIn-> Flush();
UpdateData(FALSE);
}
void CChatDlg :: OnReceive(void)
{
if(m_ptrArOut-> IsLoading())
{
&NBSP;&NBSP;&NBSP; // * m_ptrArOut>> m_bISFileTransfer;&NBSP;&NBSP;
if(m_bISFileTransfer == true)
&NBSP; &NBSP;&NBSP; {
CString strRecvMessage;
&NBSP; &NBSP;&NBSP; *(m_ptrArOut)>> strRecvMessage;
//将字符串添加到列表框中 &NBSP; &NBSP; &NBSP; &NBSP;&NBSP; &NBSP;&NBSP; m_ctlRecieve.AddString(strRecvMessage.GetBuffer()); &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
&NBSP; &NBSP; }&NBSP;&NBSP;&NBSP;&NBSP;
}&NBSP;&NBSP;
hi blo
请参考以下内容..
http://msdn.microsoft.com/en-us/library/ w7fyzz5k(VS.80)的.aspx
问候,
S.SubashSelvan
hi,
I am creating a simple CHAT application using CSocket, CSocketFile, CArchive. Initially it works fine but after some conversation, CArchive Flush does'nt send the data. I debugged the code and found that at receiver side OnReceive is not getting called after calling Flush from sender. I am confused because it works for sometime, after that it not send the data.
here is my code
void CChatDlg::OnBnClickedBsend()
{
UpdateData(TRUE);
// m_strMessage is associated with edit box
if(!m_strMessage.IsEmpty())
{
m_bISFileTransfer = false;
// Now fill the archive
*(m_ptrArIn) << m_bISFileTransfer;
*(m_ptrArIn) << m_strMessage;
// Send the message
m_ptrArIn->Flush();
UpdateData(FALSE);
}
}
void CChatDlg::OnReceive(void)
{
if(m_ptrArOut->IsLoading())
{
//*m_ptrArOut >> m_bISFileTransfer;
if(m_bISFileTransfer == true)
{
CString strRecvMessage;
*(m_ptrArOut) >> strRecvMessage;
// Add string to list box
m_ctlRecieve.AddString(strRecvMessage.GetBuffer());
}
}
}
hi
Please refer the following..
http://msdn.microsoft.com/en-us/library/w7fyzz5k(VS.80).aspx
Regards,
S.SubashSelvan
这篇关于CArchive Flush不发送数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!