Miércoles 15 de Enero de 2025, 17:13
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
Visual C++
(Moderador:
Eternal Idol
) »
MFC: ¿Cómo enviar un mensaje de un método a otro?
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: MFC: ¿Cómo enviar un mensaje de un método a otro? (Leído 1398 veces)
SlackDeb
Nuevo Miembro
Mensajes: 17
MFC: ¿Cómo enviar un mensaje de un método a otro?
«
en:
Lunes 5 de Abril de 2010, 04:21 »
0
Hola:
Tengo un servidor escrito en visual c++, y estoy atascado tratando de enviar un mensaje de la funcion iniciaescucha a la funcion onaccept. La verdad es que no se como hacerlo.
El codigo es el siguiente:
Código: Text
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;
}
La idea es que si accept es correcto se envie un mensaje a la funcion onaccept, la cual establece una conexion en otra clase.
Tweet
SlackDeb
Nuevo Miembro
Mensajes: 17
Re: MFC: ¿Cómo enviar un mensaje de un método a otro?
«
Respuesta #1 en:
Lunes 5 de Abril de 2010, 18:46 »
0
Despues de mirar algunos codigos MFC, he podido llegar a lo sgte:
He añadido lo siguiente al archivo CSocketEscuchaP.h
Código: Text
#define WM_MYMESSAGE1 WM_USER
afx_msg void OnAccept(WPARAM wParam, LPARAM lParam);//le agregué el afx_msg
En el archivo CSocketEscuchaP.cpp
Código: Text
BEGIN_MESSAGE_MAP(CSocketEscuchaP, CObject)
//{{AFX_MSG_MAP(CSocketEscucha)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_MYMESSAGE1,OnAccept)
END_MESSAGE_MAP()
..
...
CSocketEscuchaP::OnAccept(...){
MessageBox(0,"OnAccept No Falla","SocketEscuchaP.cpp",0);
OTRACE("Conexión establecida");
m_pFrame->Conecta();
}
CSocketEscuchaP::FuncionSocketEscucha(){
CWnd MyCWnd ;
PostMessage(MyCWnd,WM_MYMESSAGE1,0,0); //Esta es el mensaje que se envía
}
Con todo ello no me funciona, pues nunca se entra a la funcion OnAccept().
¿Alguna idea de que es lo que falla?
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
Visual C++
(Moderador:
Eternal Idol
) »
MFC: ¿Cómo enviar un mensaje de un método a otro?