• Viernes 8 de Noviembre de 2024, 16:56

Autor Tema:  Sockets  (Leído 1064 veces)

wallsjust

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Sockets
« en: Miércoles 9 de Marzo de 2005, 23:45 »
0
Saludos a Todos: Tengo la siguiente situación,    necesito conectarme  estilo de telnet a un servidor remoto el cual me va a dar un mensaje de bienvenida, posteriormente le envio una instruccion y debo esperar su respuesta eso es todo pero en el primer nRet=recv(theSocket,prueba,sizeof(prueba),1); el programa se queda atascado o congelado , aparentemente la conexion se esta estableciendo, pero el problema esta en el envio y recpcion de mensajes.  si alguien me puede ayudar  
saludos y gracias  :comp:


#include <winsock.h>
#include <winsock2.h>
#include <stdio.h>
int main(int argc, char** argv) {
   WORD version = MAKEWORD(1,1);
   WSADATA wsaData;
   int nRet;


   // Init Winsock
   WSAStartup(version, &wsaData);


    // Obtener la dirección del servidor
    LPHOSTENT lpHostEntry;
 
    lpHostEntry = gethostbyname("10.27.31.35");
    if (lpHostEntry == NULL) {
      printf("Error at gethostbyname()");
      return 0;
    }

       
        ClientSock.sin_port = 9011;
        ClientSock.sin_family = AF_INET;
        Client = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
        if (connect(Client, (SOCKADDR*) &ClientSock, sizeof(SOCKADDR_IN))) {
            printf("Error conectandose()");
      return 0;
        }
   // Creación del socket cliente
   SOCKET theSocket;
   char * prueba;


   theSocket = socket(AF_INET,              // Familia TCP/IP
                       SOCK_STREAM,           // tipo de Socket
                       IPPROTO_TCP);       // Protocolo
   if (theSocket == INVALID_SOCKET) {
      printf("Error at socket()");
      return 0;
   }

   
   // Fill an address struct with the server's location
   // Rellenar la estructura de datos con la definición del socket con el servidor
   SOCKADDR_IN saServer;
   
   saServer.sin_family = AF_INET;
   saServer.sin_addr = *((LPIN_ADDR)*lpHostEntry->h_addr_list);     saServer.sin_port = htons(9011);


   // Connect to the specified address and port
   nRet = connect(theSocket,
                   (LPSOCKADDR)&saServer,      // Server address
                   sizeof(struct sockaddr));   // Length of address structure
    if (nRet == SOCKET_ERROR) {
      printf("Error at connect()");
      return 0;
   }
   nRet=recv(theSocket,prueba,sizeof(prueba),1);
   printf(prueba);
   nRet=send(theSocket,"sms 584128083487;DIGITEL;'PRUEBA Justo';sisco;sisco919",1024,1);

   // Successfully connected!
   printf("Conexion Establecida con el Socket Server ");
 
   closesocket(theSocket);

   // Shutdown Winsock
   WSACleanup();
}