holas como estan, bueno estoy tratando de realizar 2 progrmas un cliente y un servidor(Sockets), cuado mando datos de consola a consola de servidor y cliente funciona correctamente, pero intente hacer un programa el cliente en Win32 y el servidor en consola y no me funciona cargo los datos en un Dlg en el mensaje "WM_INITDIALOG:" cuando cargo los datos aqui y inmediatamente se conecta y manda un mensaje al el servidor, pero cuando quiero mandar los datos oprimiendo un boton no manda nada con send(Socket,buffers,strlen(buffers),0); el codigo es este: cliente-->
case WM_INITDIALOG:
memset(&WsaDat,0,sizeof WsaDat);
memset(&Socket,0,sizeof Socket);
hListBox = GetDlgItem(hDlg,IDC_EDIT1);
WSAStartup(MAKEWORD(2,2),&WsaDat);
Socket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
host=gethostbyname("localhost");
SOCKADDR_IN SockAddr;
SockAddr.sin_port=htons(8888);
SockAddr.sin_family=AF_INET;
SockAddr.sin_addr.s_addr=*((unsigned long*)host->h_addr);
connect(Socket,(SOCKADDR*)(&SockAddr),sizeof(SockAddr));
Sleep(1000); <---si este sleep no lo hago no imprime en el server brf = cadena
send(Socket,bfr,strlen(bfr),0);<---envia los datos pero solo con el sleep
SetTimer(hDlg,IDC_TIMER,4000,NULL); <-este timer es para el ciclo infinito no pondre el codigo porque es lo mismo que lo del boton.
return (INT_PTR)TRUE;
case WM_COMMAND:
switch(wParam)
{
case IDOK:
char buffers[256];
int test;
test =sizeof(buffers);
ZeroMemory(buffers,sizeof buffers);
SendMessage(hListBox,WM_GETTEXT,255,LPARAM(buffers));<--tengo un Editcontro para mandar datos al server los recupero y envio
send(Socket,buffers,strlen(buffers),0);<---no envia los datos
}
bueno esa es la partes mas importantes del codigo funciona bien lo de inicio del Dlg pero al mandar informacion con el boton IDOK ya no manda nada no se a que se deba, ya llevo unos dias intentando pero ningun resoltado se los agredeceria que me ayudaran.
case WM_INITDIALOG:
memset(&WsaDat,0,sizeof WsaDat);
memset(&Socket,0,sizeof Socket);
hListBox = GetDlgItem(hDlg,IDC_EDIT1);
WSAStartup(MAKEWORD(2,2),&WsaDat);
Socket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
host=gethostbyname("localhost");
SOCKADDR_IN SockAddr;
SockAddr.sin_port=htons(8888);
SockAddr.sin_family=AF_INET;
SockAddr.sin_addr.s_addr=*((unsigned long*)host->h_addr);
connect(Socket,(SOCKADDR*)(&SockAddr),sizeof(SockAddr));
Sleep(1000); <---si este sleep no lo hago no imprime en el server brf = cadena
send(Socket,bfr,strlen(bfr),0);<---envia los datos pero solo con el sleep
SetTimer(hDlg,IDC_TIMER,4000,NULL); <-este timer es para el ciclo infinito no pondre el codigo porque es lo mismo que lo del boton.
return (INT_PTR)TRUE;
case WM_COMMAND:
switch(wParam)
{
case IDOK:
char buffers[256];
int test;
test =sizeof(buffers);
ZeroMemory(buffers,sizeof buffers);
SendMessage(hListBox,WM_GETTEXT,255,LPARAM(buffers));<--tengo un Editcontro para mandar datos al server los recupero y envio
send(Socket,buffers,strlen(buffers),0);<---no envia los datos
}
bueno esa es la partes mas importantes del codigo funciona bien lo de inicio del Dlg pero al mandar informacion con el boton IDOK ya no manda nada no se a que se deba, ya llevo unos dias intentando pero ningun resoltado se los agredeceria que me ayudaran.