Cita de: Drewermerc en 23 Abril 2014, 06:59 AMEl código que publicaste veo que usas bind no connect. Te digo que usa connect no bind.
hola x64core
bueno mira mira tambien ya lo intente con bind pero no sigue en lo mismo y como el utimo memodo que use fue connect por eso lo publique con connect.
bueno pues si no tengo mucho conocimientos de sockets y pues yo me apoco de lo que encuentro en internet aunq ue no hay mucha informacion en esapañol en lo poco que entiendo de ingles tambien en eso me apollo y pue sno conozco ningun libro sobre sockest en windows.
Sólo arreglé el problema mayor y deberia ser usado sólo para pruebas pero lo mejor será leer:
Código [Seleccionar]
int main()
{
int i = 0;
char hostname[] = "localhost";
struct sockaddr_in conect;
SOCKET iSocket;
SOCKADDR_IN Info;
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2,0), &wsaData) != 0 )
{
cout << "Winsock Error, Exiting..." << endl;
cin.get();
return 0;
}
cout << "Target IP: ";
cin>>IP;
cout << "Starting Port: ";
cin>>startPort;
cout << "End Port: ";
cin>>endPort;
cin.ignore();
cout << endl << endl << "Scanning..." << endl << endl;
for(int i=startPort; i <= endPort; i++)
{
iSocket = socket(AF_INET, SOCK_STREAM, 0);
if (iSocket == -1)
cout<<"error al abrir el socket";
conect.sin_addr.S_un.S_addr = inet_addr(IP);
conect.sin_family = AF_INET;
conect.sin_port = htons(i);
nret = connect(iSocket, (struct sockaddr *)&conect, sizeof(conect));
if( nret == SOCKET_ERROR)
{
cout <<"puerto no abierto " << i << endl;;
}
else
{
cout << "Port " << i << " - OPEN! " << endl;
}
closesocket(iSocket);
}
cout << endl << "Finished With Scan..." << endl;
cin.get();
WSACleanup();
}
El Ingles es insispensable en la programación. En mi experiencia te recomiendo comprar esto dos :
http://www.amazon.com/Network-Programming-Microsoft-Windows-Edition/dp/0735615799
http://www.amazon.com/TCP-Sockets-Second-Edition-Programmers/dp/0123745403
Entorno Windows y en conocimiento en general