P
						
					
					
						
					
				
				
					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?