OnAccept Methode wird nicht aufgerufen
-
Hallo Experten!
#include "StdAfx.h" #include "TcpServer.h" CTcpServer::CTcpServer(void) : m_pParent(NULL) , m_nRecvBufferSize(0) , m_szInterface(_T("")) , m_nPort(0) , m_nPacketLength(0) { } CTcpServer::~CTcpServer(void) { } void CTcpServer::Init(CWnd* pParent, int nRecvBufferSize) { m_pParent = pParent; m_nRecvBufferSize = nRecvBufferSize; } int CTcpServer::Start(CString szInterface , UINT nPort, int nPacketLength) { if(m_pParent) { m_szInterface = szInterface; m_nPort = nPort; m_nPacketLength = nPacketLength; int ret; if(m_szInterface.IsEmpty()) { ret = m_SocketAccept.Create(m_nPort, SOCK_STREAM, NULL); } else { ret = m_SocketAccept.Create(m_nPort, SOCK_STREAM, m_szInterface); } if(ret) { if(m_SocketAccept.Listen(1)) { return 1; } else { ShowErrorBox(GetLastError()); } } else { ShowErrorBox(GetLastError()); } } return 0; } int CTcpServer::Stop(void) { return 0; } void CTcpServer::ShowErrorBox(int nErrorCode) { CString szText; szText.AppendFormat(_T("Socket - Errorcode : %i"),nErrorCode); if(m_pParent) { MessageBox(m_pParent->GetSafeHwnd(),szText,NULL,MB_ICONERROR|MB_OK); } } void CTcpServer::OnAccept(int nErrorCode) { if(m_SocketAccept.Accept(m_SocketConnection)) { // Connected CString szPeerName; UINT nPeerPort; GetPeerName(szPeerName,nPeerPort); } CSocket::OnAccept(nErrorCode); }
Hier wird nun die Methode "OnAccept" nicht aufgerufen. Die Klasse CTcpServer ist ":public CSocket" .
In einem anderen Projekt habe ich von CSocket eine Klasse mySocket abgeleitet, da wird "OnAccept" aufgerufen. Hier ist ja nun eigentlich nix anders oder?