void CSocketEscuchaP::OnAccept(int nErrorCode)
{
if (nErrorCode == 0)
{
OTRACE("Conexión establecida");
m_pFrame->Conecta();
}
}
BOOL CSocketEscuchaP::IniciaEscucha(CMainFrame *pFrame, UINT nPort)
{
ASSERT(pFrame);
m_pFrame = pFrame;
/* Create socket for incoming connections */
if ((servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
return FALSE;
/* Construct local address structure */
memset(&echoServAddr, 0, sizeof(echoServAddr)); /* Zero out structure */
echoServAddr.sin_family = AF_INET; /* Internet address family */
echoServAddr.sin_addr.s_addr = htonl(INADDR_ANY); /* Any incoming interface */
echoServAddr.sin_port = htons(nPort); /* Local port */
/* Bind to the local address */
if (bind(servSock, (struct sockaddr *) &echoServAddr, sizeof(echoServAddr)) < 0)
return FALSE;
/* Mark the socket so it will listen for incoming connections */
if (listen(servSock, 1) < 0)
return FALSE;
for (;;) /* Run forever */
{
/* Set the size of the in-out parameter */
clntLen = sizeof(echoClntAddr);
/* Wait for a client to connect */
[color=#FF0000] if ((clntSock = accept(servSock, (struct sockaddr *) &echoClntAddr, &clntLen)) < 0)[/color]
MessageBox(0,"Error en IniciaEscucha","SocketEscuchaP.cpp",0);
else
{
break;
}
}
return TRUE;
}