Tema: sockets
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/04/2011, 21:28
davidtadeo
 
Fecha de Ingreso: agosto-2010
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 1
sockets

tengo este programa para cliente y para servidor, es solo que nose cual ejecutar primero, imagino que el serividor, ademas es en mi misma compu, el codigo lo copie de una pagina paso a paso para lo que hago, y pues ejecuto el servidor y no se ve la pantalla pero el proceso esta activo y ejecuto despues cliente y no pasa nada de nada y no me da errores de nada ninguna de las dos, solo 1 warnign en cada uno pero no creo que alla problema, ayuda por favor, les agradeceria mucho me orientaran gracias

cliente

Código C++:
Ver original
  1. //cliente
  2. #include <stdio.h>
  3. #include <windows.h>
  4. #include <winsock.h>
  5.  
  6. /* El chequeo de errores ha sido removido por claridad */
  7. void main(void)
  8. {
  9.     WSADATA WsaData;
  10.     WORD    wVersionRequerida = MAKEWORD (2, 2);
  11.  
  12.     /* Inicializar WinSock */
  13.     WSAStartup (wVersionRequerida, &WsaData);
  14.    
  15.     SOCKET Sock;
  16.  
  17.     Sock = socket (AF_INET, SOCK_STREAM, 0);
  18.  
  19.     SOCKADDR_IN DireccionServer;
  20.     memset (&DireccionServer, 0, sizeof (DireccionServer));
  21.     DireccionServer.sin_family = AF_INET;
  22.     DireccionServer.sin_addr.S_un.S_un_b.s_b1 = 127;
  23.     DireccionServer.sin_addr.S_un.S_un_b.s_b2 = 0;
  24.     DireccionServer.sin_addr.S_un.S_un_b.s_b3 = 0;
  25.     DireccionServer.sin_addr.S_un.S_un_b.s_b4 = 1;
  26.     DireccionServer.sin_port = 5000;
  27.  
  28.     int iResult = connect (Sock, (SOCKADDR*) &DireccionServer, \
  29.     sizeof(DireccionServer));
  30.  
  31.     if (iResult)
  32.     {
  33.         printf ("No se puede conectar\n");
  34.         return;
  35.     }
  36.  
  37.     unsigned Dato = 2;
  38.     send (Sock, (char *)&Dato, sizeof (Dato), 0);
  39.  
  40.     unsigned Rta;
  41.     recv (Sock, (char *)&Rta, sizeof (Rta), 0);
  42.     printf ("Dato enviado: %u, Respuesta recibida: %u\n", Dato, Rta);
  43.  
  44.     closesocket (Sock);
  45.     WSACleanup();
  46. }

servidor

Código C++:
Ver original
  1. //servidor
  2. #include <stdio.h>
  3. #include <windows.h>
  4. #include <winsock.h>
  5.  
  6. /* El chequeo de errores ha sido removido por claridad */
  7. void main(void)
  8. {
  9.     /* Inicializar WinSock */
  10.     WSADATA WsaData;
  11.     WORD    wVersionRequerida = MAKEWORD (2, 2);
  12.     WSAStartup (wVersionRequerida, &WsaData);
  13.    
  14.     SOCKET SockEscucha;
  15.  
  16.     SockEscucha = socket (AF_INET, SOCK_STREAM, 0);
  17.  
  18.     SOCKADDR_IN DireccionLocal;
  19.     memset (&DireccionLocal, 0, sizeof (DireccionLocal));
  20.     DireccionLocal.sin_family = AF_INET;
  21.     DireccionLocal.sin_port = 5000;
  22.  
  23.     bind (SockEscucha, (SOCKADDR*)&DireccionLocal, sizeof (DireccionLocal));
  24.  
  25.     int iResult = listen (SockEscucha, 5);
  26.    
  27.     SOCKET SockConexion = accept (SockEscucha, NULL, NULL);
  28.     closesocket (SockEscucha);
  29.  
  30.     unsigned Dato;
  31.     recv (SockConexion, (char *)&Dato, sizeof (Dato), 0);
  32.  
  33.     unsigned Rta = Dato * 2;
  34.     send (SockConexion, (char *)&Rta, sizeof (Rta), 0);
  35.     printf ("Dato recibido: %u, Respuesta enviada: %u\n", Dato, Rta);
  36.  
  37.     closesocket (SockConexion);
  38.     WSACleanup();
  39. }