CAsyncSocket - Receive



  • Hi,
    ich habe ein Problem mit dem Empfangen von Daten mit CAsyncSockets. Zu erst ma möchte ich fragen ob es überhaupt möglich ist mit CAsyncSockets zu einem Server zu connecten der normale SOCKETs benutzt.
    Wenn ich mit den CAsyncSockets auf meinen Server connecte bekomme ich von GetLastError die Fehlernummer 10035 aber das Senden von Daten funktioniert trotzdem wunderbar. Wenn ich nun aber vom Server aus was an den Client schicken möchte kommt das nicht an. Wenn ich rc = m_listen.Accept(m_server); aufrufe bekomme ich von GetLastError auch 10035. Woran liegt es das der Client nichts empängt?

    Client OnReceive:

    void MySocket::OnReceive(int nErrorCode)   // CMyAsyncSocket is 
                                                    // derived from CAsyncSocket
    {
    
       static int i=0;
    
       i++;
    
       TCHAR buff[4096];
       int nRead;
       nRead = Receive(buff, 4096); 
    
       switch (nRead)
       {
       case 0:
          Close();
          break;
       case SOCKET_ERROR:
          if (GetLastError() != WSAEWOULDBLOCK) 
          {
             AfxMessageBox ("Error occurred");
             Close();
          }
          break;
       default:
          buff[nRead] = 0; //terminate the string
          CString szTemp(buff);
          m_strRecv += szTemp;   // m_strRecv is a CString declared 
                               // in CMyAsyncSocket
          if (szTemp.CompareNoCase("bye") == 0 )    ShutDown();
       }
       CAsyncSocket::OnReceive(nErrorCode);
    }
    

Anmelden zum Antworten