Buenos días lectores,
Quisiera que me ayuden a convertir estos códigos de sockets en c++ para crear un servidor de acuerdo a "no-ip". O bien, volver mi pc un servidor.
Mi código funciona con "127.0.0.1", pero como hago para volverlo una botnet o algo parecido ?
Tengo entendido que puedo poner en el cliente mi ip pública, pero no funciona... alguien con más experiencia me podría decir ?
Tengo entendido que tengo que abrir puertos... ¿qué puertos debo utilizar?¿Abro en router y/o firewall?
Sin incomodar al lector, si tienen un código 100% funcional con "no-ip" me interesa estudiarlo.
Muchas Gracias,
Servidor:
#include <iostream>
#include <WinSock2.h>
#pragma comment(lib,"Ws2_32.lib")
using namespace std;
void Error(char * mensaje){
cout << "Error: " << mensaje << endl;
system("pause");
}
void Success(char * mensaje){
cout << "Successful: " << mensaje << endl;
}
int main(){
WSAData wsa;
if(WSAStartup(MAKEWORD(2,2),&wsa) != 0)
Error("WSAStartup");
else
Success("WSAStartup");
SOCKET mySocket = socket(AF_INET,SOCK_STREAM,0);
if(mySocket == INVALID_SOCKET)
Error("Socket");
else
Success("Socket");
struct sockaddr_in server;
server.sin_family = AF_INET;
server.sin_port = htons(2000);
server.sin_addr.S_un.S_addr = INADDR_ANY;
if( bind(mySocket,(sockaddr*)&server,sizeof(server)) != 0)
Error("Bind");
else
Success("Bind");
if( listen(mySocket,5) != 0 )
Error("Listen");
else
Success("Listen");
SOCKET cliente = INVALID_SOCKET;
while(cliente == INVALID_SOCKET){
accept(cliente,0,0);
}
Success("Accept");
cout << endl;
system("pause");
WSACleanup();
closesocket(mySocket);
cout << "Bye bye !!" << endl;
Sleep(1000);
return 0;
}
Cliente:
#include <iostream>
#include <WinSock2.h>
#pragma comment(lib,"Ws2_32.lib")
using namespace std;
void Error(char * mensaje){
cout << "Error: " << mensaje << endl;
system("pause");
exit(1);
}
void Success(char * mensaje){
cout << "Successful: " << mensaje << endl;
}
int main(){
WSADATA wsa;
if(WSAStartup(MAKEWORD(2,2),&wsa) != 0)
Error("WSAStartup");
else
Success("WSAStartup");
SOCKET mySocket = socket(AF_INET,SOCK_STREAM,0);
if(mySocket == INVALID_SOCKET)
Error("Socket");
else
Success("Socket");
struct sockaddr_in server;
server.sin_family = AF_INET;
server.sin_port = htons(2000);
server.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
if( connect(mySocket,(sockaddr*)&server,sizeof(server)) != 0)
Error("Connect");
else
Success("Connect");
cout << "Connection successful !!" << endl;
cout << endl;
system("pause");
WSACleanup();
closesocket(mySocket);
cout << "Bye bye !!" << endl;
Sleep(1000);
return 0;
}