Hola el codigo es este:
// socket test.cpp: define el punto de entrada de la aplicación de consola.
//
#pragma comment(lib, "ws2_32.lib")
#include "stdafx.h"
#include <windows.h>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA wsaData;
SOCKET socket_mm;
struct hostent *hp;
int resp;
resp=WSAStartup(MAKEWORD(0,1),&wsaData);
if(resp){
cout << "Error al cargar librerias de sockets.";
getchar();
return resp;
}
hp=(struct hostent *)gethostbyname("localhost");
if(hp){
cout << "Error al encontrar localhost";
WSACleanup();
return WSAGetLastError();
}
socket_mm = socket(AF_INET,SOCK_STREAM,0);
getchar();
return 0;
}
Luego al depurar los errores:
1>------ Operación Compilar iniciada: proyecto: socket test, configuración: Debug Win32 ------
1> socket test.cpp
1>c:\program files (x86)\windows kits\8.0\include\shared\ws2def.h(96): warning C4005: 'AF_IPX' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(452) : vea la definición anterior de 'AF_IPX'
1>c:\program files (x86)\windows kits\8.0\include\shared\ws2def.h(136): warning C4005: 'AF_MAX' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(471) : vea la definición anterior de 'AF_MAX'
1>c:\program files (x86)\windows kits\8.0\include\shared\ws2def.h(173): warning C4005: 'SO_DONTLINGER' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(394) : vea la definición anterior de 'SO_DONTLINGER'
1>c:\program files (x86)\windows kits\8.0\include\shared\ws2def.h(217): error C2011: 'sockaddr' : nueva definición del tipo 'struct'
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(477) : vea la declaración de 'sockaddr'
1>c:\program files (x86)\windows kits\8.0\include\shared\ws2def.h(414): error C2059: error de sintaxis : 'constante'
1>c:\program files (x86)\windows kits\8.0\include\shared\ws2def.h(414): error C3805: 'constante': símbolo (token) inesperado; se esperaba '}' o ','
1>c:\program files (x86)\windows kits\8.0\include\shared\ws2def.h(549): warning C4005: 'IN_CLASSA' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(279) : vea la definición anterior de 'IN_CLASSA'
1>c:\program files (x86)\windows kits\8.0\include\shared\ws2def.h(555): warning C4005: 'IN_CLASSB' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(285) : vea la definición anterior de 'IN_CLASSB'
1>c:\program files (x86)\windows kits\8.0\include\shared\ws2def.h(561): warning C4005: 'IN_CLASSC' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(291) : vea la definición anterior de 'IN_CLASSC'
1>c:\program files (x86)\windows kits\8.0\include\shared\ws2def.h(572): warning C4005: 'INADDR_ANY' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(296) : vea la definición anterior de 'INADDR_ANY'
1>c:\program files (x86)\windows kits\8.0\include\shared\ws2def.h(574): warning C4005: 'INADDR_BROADCAST' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(298) : vea la definición anterior de 'INADDR_BROADCAST'
1>c:\program files (x86)\windows kits\8.0\include\shared\ws2def.h(608): error C2011: 'sockaddr_in' : nueva definición del tipo 'struct'
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(304) : vea la declaración de 'sockaddr_in'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(125): error C2011: 'fd_set' : nueva definición del tipo 'struct'
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(60) : vea la declaración de 'fd_set'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(145): warning C4005: 'FD_CLR' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(89) : vea la definición anterior de 'FD_CLR'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(160): warning C4005: 'FD_SET' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(94) : vea la definición anterior de 'FD_SET'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(169): error C2011: 'timeval' : nueva definición del tipo 'struct'
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(103) : vea la declaración de 'timeval'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(225): error C2011: 'hostent' : nueva definición del tipo 'struct'
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(159) : vea la declaración de 'hostent'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(238): error C2011: 'netent' : nueva definición del tipo 'struct'
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(172) : vea la declaración de 'netent'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(245): error C2011: 'servent' : nueva definición del tipo 'struct'
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(179) : vea la declaración de 'servent'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(257): error C2011: 'protoent' : nueva definición del tipo 'struct'
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(191) : vea la declaración de 'protoent'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(353): error C2011: 'WSAData' : nueva definición del tipo 'struct'
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(314) : vea la declaración de 'WSAData'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(451): error C2011: 'sockproto' : nueva definición del tipo 'struct'
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(486) : vea la declaración de 'sockproto'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(493): error C2011: 'linger' : nueva definición del tipo 'struct'
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(523) : vea la declaración de 'linger'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(506): warning C4005: 'SOMAXCONN' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(536) : vea la definición anterior de 'SOMAXCONN'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(536): warning C4005: 'FD_READ' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(554) : vea la definición anterior de 'FD_READ'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(539): warning C4005: 'FD_WRITE' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(555) : vea la definición anterior de 'FD_WRITE'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(542): warning C4005: 'FD_OOB' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(556) : vea la definición anterior de 'FD_OOB'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(545): warning C4005: 'FD_ACCEPT' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(557) : vea la definición anterior de 'FD_ACCEPT'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(548): warning C4005: 'FD_CONNECT' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(558) : vea la definición anterior de 'FD_CONNECT'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(551): warning C4005: 'FD_CLOSE' : redefinición de macro
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(559) : vea la definición anterior de 'FD_CLOSE'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1577): error C2375: accept' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(734) : vea la declaración de 'accept'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1599): error C2375: bind' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(739) : vea la declaración de 'bind'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1618): error C2375: closesocket' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(744) : vea la declaración de 'closesocket'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1637): error C2375: connect' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(746) : vea la declaración de 'connect'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1658): error C2375: ioctlsocket' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(751) : vea la declaración de 'ioctlsocket'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1679): error C2375: getpeername' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(756) : vea la declaración de 'getpeername'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1700): error C2375: getsockname' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(761) : vea la declaración de 'getsockname'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1723): error C2375: getsockopt' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(766) : vea la declaración de 'getsockopt'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1744): error C2375: htonl' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(773) : vea la declaración de 'htonl'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1761): error C2375: htons' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(775) : vea la declaración de 'htons'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1778): error C2375: inet_addr' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(777) : vea la declaración de 'inet_addr'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1795): error C2375: inet_ntoa' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(779) : vea la declaración de 'inet_ntoa'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1896): error C2375: listen' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(781) : vea la declaración de 'listen'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1914): error C2375: ntohl' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(785) : vea la declaración de 'ntohl'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1931): error C2375: ntohs' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(787) : vea la declaración de 'ntohs'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1951): error C2375: recv' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(789) : vea la declaración de 'recv'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(1976): error C2375: recvfrom' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(795) : vea la declaración de 'recvfrom'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2002): error C2375: select' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(803) : vea la declaración de 'select'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2026): error C2375: send' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(810) : vea la declaración de 'send'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2051): error C2375: sendto' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(816) : vea la declaración de 'sendto'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2077): error C2375: setsockopt' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(824) : vea la declaración de 'setsockopt'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2099): error C2375: shutdown' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(831) : vea la declaración de 'shutdown'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2120): error C2375: socket' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(835) : vea la declaración de 'socket'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2144): error C2375: gethostbyaddr' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(842) : vea la declaración de 'gethostbyaddr'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2163): error C2375: gethostbyname' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(847) : vea la declaración de 'gethostbyname'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2181): error C2375: gethostname' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(849) : vea la declaración de 'gethostname'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2221): error C2375: getservbyport' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(853) : vea la declaración de 'getservbyport'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2240): error C2375: getservbyname' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(857) : vea la declaración de 'getservbyname'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2258): error C2375: getprotobynumber' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(861) : vea la declaración de 'getprotobynumber'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2275): error C2375: getprotobyname' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(863) : vea la declaración de 'getprotobyname'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2296): error C2375: WSAStartup' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(867) : vea la declaración de 'WSAStartup'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2315): error C2375: WSACleanup' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(871) : vea la declaración de 'WSACleanup'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2332): error C2375: WSASetLastError' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(873) : vea la declaración de 'WSASetLastError'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2349): error C2375: WSAGetLastError' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(875) : vea la declaración de 'WSAGetLastError'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2366): error C2375: WSAIsBlocking' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(877) : vea la declaración de 'WSAIsBlocking'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2383): error C2375: WSAUnhookBlockingHook' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(879) : vea la declaración de 'WSAUnhookBlockingHook'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2400): error C2375: WSASetBlockingHook' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(881) : vea la declaración de 'WSASetBlockingHook'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2417): error C2375: WSACancelBlockingCall' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(883) : vea la declaración de 'WSACancelBlockingCall'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2439): error C2375: WSAAsyncGetServByName' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(885) : vea la declaración de 'WSAAsyncGetServByName'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2466): error C2375: WSAAsyncGetServByPort' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(893) : vea la declaración de 'WSAAsyncGetServByPort'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2492): error C2375: WSAAsyncGetProtoByName' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(901) : vea la declaración de 'WSAAsyncGetProtoByName'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2517): error C2375: WSAAsyncGetProtoByNumber' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(908) : vea la declaración de 'WSAAsyncGetProtoByNumber'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2542): error C2375: WSAAsyncGetHostByName' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(915) : vea la declaración de 'WSAAsyncGetHostByName'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2569): error C2375: WSAAsyncGetHostByAddr' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(922) : vea la declaración de 'WSAAsyncGetHostByAddr'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2592): error C2375: WSACancelAsyncRequest' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(931) : vea la declaración de 'WSACancelAsyncRequest'
1>c:\program files (x86)\windows kits\8.0\include\um\winsock2.h(2612): error C2375: WSAAsyncSelect' : nueva definición; vinculación distinta
1> c:\program files (x86)\windows kits\8.0\include\um\winsock.h(933) : vea la declaración de 'WSAAsyncSelect'
1>c:\users\nico\documents\visual studio 2012\projects\socket test\socket test\socket test.cpp(13): error C2079: 'wsaData' utiliza struct 'WSAData' sin definir
1>c:\users\nico\documents\visual studio 2012\projects\socket test\socket test\socket test.cpp(18): error C2440: '=' : no se puede realizar la conversión de 'int (__stdcall *)(WORD,LPWSADATA)' a 'int'
1>c:\users\nico\documents\visual studio 2012\projects\socket test\socket test\socket test.cpp(18): error C3861: 'WSAStartup': no se encontró el identificador
1>c:\users\nico\documents\visual studio 2012\projects\socket test\socket test\socket test.cpp(25): error C3861: 'gethostbyname': no se encontró el identificador
1>c:\users\nico\documents\visual studio 2012\projects\socket test\socket test\socket test.cpp(28): error C3861: 'WSACleanup': no se encontró el identificador
1>c:\users\nico\documents\visual studio 2012\projects\socket test\socket test\socket test.cpp(29): error C3861: 'WSAGetLastError': no se encontró el identificador
1>c:\users\nico\documents\visual studio 2012\projects\socket test\socket test\socket test.cpp(32): error C2440: '=' : no se puede realizar la conversión de 'SOCKET (__stdcall *)(int,int,int)' a 'SOCKET'
1>c:\users\nico\documents\visual studio 2012\projects\socket test\socket test\socket test.cpp(32): error C3861: 'socket': no se encontró el identificador
========== Compilar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========