Hola amigo
Drewermerc, muchas gracias por tu ayuda, he probado tu código, pero me sigue dando errores, los mismos son estos:
mingw32-g++.exe -c C:\Users\Daniel\Desktop\C++\SocketPuertos.cpp -o C:\Users\Daniel\Desktop\C++\SocketPuertos.o
mingw32-g++.exe -o C:\Users\Daniel\Desktop\C++\SocketPuertos.exe C:\Users\Daniel\Desktop\C++\SocketPuertos.o
C:\Users\Daniel\Desktop\C++\SocketPuertos.o:Socket Puertos.cpp:(.text+0x70): undefined reference to `WSAStartup@8'
C:\Users\Daniel\Desktop\C++\SocketPuertos.o:Socket Puertos.cpp:(.text+0x1cb): undefined reference to `socket@12'
C:\Users\Daniel\Desktop\C++\SocketPuertos.o:Socket Puertos.cpp:(.text+0x1e7): undefined reference to `htons@4'
C:\Users\Daniel\Desktop\C++\SocketPuertos.o:Socket Puertos.cpp:(.text+0x208): undefined reference to `connect@12'
C:\Users\Daniel\Desktop\C++\SocketPuertos.o:Socket Puertos.cpp:(.text+0x274): undefined reference to `closesocket@4'
C:\Users\Daniel\Desktop\C++\SocketPuertos.o:Socket Puertos.cpp:(.text+0x2db): undefined reference to `WSACleanup@0'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 0 second(s))
6 error(s), 0 warning(s) (0 minute(s), 0 second(s)) También probé este código:
Código C++:
Ver original#include <iostream>
#include <windows.h>
#include <time.h>
#include <conio.h>
#include <dos.h>
#include <stdio.h>
using namespace std;
int TcpConnect (int Port, char *IpDst, int Timeout)
{
SOCKET sock;
fd_set Write, Err;
TIMEVAL timeout;
unsigned long Mode = 1;
int ret, err;
sock = socket (AF_INET,SOCK_STREAM,0);
if (sock == INVALID_SOCKET)
{
return 2;
}
sin.
sin_addr.
s_addr = inet_addr
(IpDst
); sin.
sin_port = htons
(Port
); sin.
sin_family = AF_INET
;
if (ioctlsocket (sock, FIONBIO, &Mode) != 0)
{
closesocket (sock);
return 2;
}
ret
= ::connect (sock
, (struct sockaddr
*)&sin, sizeof (sin));
if (ret == SOCKET_ERROR)
{
err = WSAGetLastError ();
if (err == WSAEWOULDBLOCK)
{
FD_ZERO (&Write);
FD_ZERO (&Err);
FD_SET (sock, &Write);
FD_SET (sock, &Err);
timeout.tv_sec = Timeout;
timeout.tv_usec = 0;
ret = select (0, NULL, &Write, &Err, &timeout);
if (ret == 0)
{
// Timeout
closesocket (sock);
return 1; // Close
}
else
{
if (FD_ISSET (sock, &Write))
{
closesocket (sock);
return 0; // Open
}
if (FD_ISSET (sock, &Err))
{
closesocket (sock);
return 2; // Error
}
}
}
else
{
closesocket (sock);
return 1; // Close
}
}
else
{
closesocket (sock);
return 0; // open
}
return 0;
}
Pero también me da errores son errores son estos: mingw32-g++.exe -c C:\Users\Daniel\Desktop\C++\Pruebas.cpp -o C:\Users\Daniel\Desktop\C++\Pruebas.o
mingw32-g++.exe -o C:\Users\Daniel\Desktop\C++\Pruebas.exe C:\Users\Daniel\Desktop\C++\Pruebas.o
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0x6d): undefined reference to `socket@12'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0x98): undefined reference to `inet_addr@4'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0xac): undefined reference to `htons@4'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0xd3): undefined reference to `ioctlsocket@12'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0xea): undefined reference to `closesocket@4'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0x11b): undefined reference to `connect@12'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0x130): undefined reference to `WSAGetLastError@0'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0x250): undefined reference to `select@20'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0x267): undefined reference to `closesocket@4'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0x293): undefined reference to `__WSAFDIsSet@8'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0x2aa): undefined reference to `closesocket@4'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0x2d6): undefined reference to `__WSAFDIsSet@8'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0x2ed): undefined reference to `closesocket@4'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0x30c): undefined reference to `closesocket@4'
C:\Users\Daniel\Desktop\C++\Pruebas.o:Pruebas.cpp: (.text+0x32b): undefined reference to `closesocket@4'
c:/program files (x86)/codeblocks/mingw/bin/../lib/gcc/mingw32/4.7.1/../../../libmingw32.a(main.o):main.c:(.text.startup+0xa7): undefined reference to `WinMain@16'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 1 second(s))
16 error(s), 0 warning(s) (0 minute(s), 1 second(s))
La verdad no sé porque fallan los códigos... no entiendo.
Gracias amigo igualmente!!!
PD: El código es en C++, utilizo Code::Blocks