hola gente, bueno les comento el problema, estoy usando las funciones send y recv y no logro poder enviar o recivir datos, en este caso mensajes.
Pongo el codigo
Cliente
val=connect (sock_1, (struct sockaddr *) &serv, sizeof (sockaddr));
while (val==-1)
{
Sleep (1000);
val=connect (sock_1, (struct sockaddr *) &serv, sizeof (sockaddr));
}
printf ("Conectando...\n Conectado con: %s\n\a", inet_ntoa (serv.sin_addr));
printf ("Ingrese mensaje a enviar:");
fgets (ibuffer, strlen (ibuffer), stdin);
send(sock_1,ibuffer, sizeof (ibuffer), 0); //ENVIA MENSAJE
printf ("mensaje enviado:%s \n", ibuffer);
while (b!=0){
recv (sock_1, vbuffer, sizeof (vbuffer), 0); //RESIVO MENSAJE
//std::string sibuffer (ibuffer);
printf ("Datos recividos:%s\n",vbuffer);
printf ("Ingrese mensaje a enviar:");
fgets (ibuffer, strlen (ibuffer), stdin);
b=send(sock_1,ibuffer, sizeof (ibuffer), 0);
printf ("mensaje enviado:%s \n", ibuffer);
getchar ();
}
Servidor
b=recv (sock_1, vbuffer, sizeof (vbuffer), 0); //RESIVO
//std::string svbuffer (vbuffer);
printf ("datos recividos:%s\n",vbuffer);
while (b!=0){
send(sock_1,"Prueba de mensaje", 17, 0); //ENVIO
printf ("mensaje enviado \n");
printf ("Resepcion de mensajes\n");
b= recv (sock_1, vbuffer, sizeof (vbuffer), 0);
//std::string svbuffer (vbuffer);
printf ("datos recividos:%s\n",vbuffer);
getchar ();
}
//vbuffer e ibuffer son locales del main
char vbuffer[512], ibuffer[512];
CitarMe faltaria limpear el buffer pero de todas formas no logro conseguir enviar ni recivir mensajes
Esque estas usando mal los sockets, no se pueden usar api asi como asi conectar y enviar.
Mirate el tutorial de winsock de mazard, lo puedes encontrar en su web (www.mazard.info)
salu2!
los socket estan es una parte del code eso, la parte que falla. La conexion entre cliente y servidor anda, se conectan.
El problema esta en cuanto quiero mandar un mensaje al servidor y viceversa.
De todas formas le echo un ojo al tuto de mazard
Saludos