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
#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();
}