Question about using wxSocketBase::Peek()
Posted: Thu Jul 24, 2008 12:33 pm
A message box showed up when i run my app. No errors show when compile and link.
I just want to check wether there are more data in socket to be read after "sock->Read(cBuf,sizeof(cBuf)-1);".
I just want to check wether there are more data in socket to be read after "sock->Read(cBuf,sizeof(cBuf)-1);".
Code: Select all
void netdbgFrame::OnSocketEvent(wxSocketEvent& event)
{
wxString s = _("");
char cBuf [16];
char cPeekBuf[16];
wxString wxstrBuf;
wxSocketBase *sock = event.GetSocket();
sock->SetFlags(wxSOCKET_WAITALL);
switch (event.GetSocketEvent())
{
case wxSOCKET_INPUT :
memset( cBuf, 0, 16 );
sock->Read(cBuf,sizeof(cBuf)-1);
sock->Peek(cPeekBuf,sizeof(cPeekBuf));
if (sock->LastCount()!=0)
{
strtemp+=cBuf;
}
else
{
strtemp+=cBuf;
wxstrBuf=wxString(strtemp.data(), *wxConvCurrent);
s.Append(wxstrBuf);
}
break;
case wxSOCKET_LOST :
s.Append(_("wxSOCKET_LOST\n"));
break;
case wxSOCKET_CONNECTION :
s.Append(_("wxSOCKET_CONNECTION\n"));
break;
default :
s.Append(_("Unexpected event !\n"));
break;
}
C_TextRev->AppendText(s);
UpdateStatusBar();
}