I am trying to create a socket and then connect to a IP address. But I got an error "WSAECONNREFUSED" after I called funtion WSAGetLastError(). Here is part of the code.
Can any networking GURU here points out what could be the reason? Thanks for your inputs.Code:main() { int sock; WORD wVersionRequested; WSADATA wsaData; wVersionRequested = MAKEWORD(2,2); WSAStartup(wVersionRequested,&wsaData); sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if(sock == -1) { printf("Invalid socket\n"); exit(1); } struct sockaddr_in sa; memset(&sa,0,sizeof(sa)); sa.sin_addr.s_addr = inet_addr(argv[1]); sa.sin_family = AF_INET; sa.sin_port = 7; connect(sock,(struct sockaddr*)&sa,sizeof(sa)); int err = WSAGetLastError(); switch(err){ case WSANOTINITIALISED: printf("WSANOTINITIALISED\n"); break; case WSAENETDOWN: printf("WSAENETDOWN\n"); break; case WSAEADDRINUSE: printf("WSAEADDRINUSE\n"); break; case WSAEINTR: printf("WSAEINTR\n"); break; case WSAEINPROGRESS: printf("WSAEINPROGRESS\n"); break; case WSAEALREADY: printf("WSAEALREADY\n"); break; case WSAEADDRNOTAVAIL: printf("WSAEADDRNOTAVAIL\n"); break; case WSAEAFNOSUPPORT: printf("WSAEAFNOSUPPORT\n"); break; case WSAECONNREFUSED: printf("WSAECONNREFUSED\n"); break; case WSAEFAULT: printf("WSAEFAULT\n"); break; case WSAEINVAL: printf("WSAEINVAL\n"); break; case WSAEISCONN: printf("WSAEISCONN\n"); break; case WSAENETUNREACH: printf("WSAENETUNREACH\n"); break; case WSAENOBUFS: printf("WSAENOBUFS\n"); break; case WSAENOTSOCK: printf("WSAENOTSOCK\n"); break; case WSAETIMEDOUT: printf("WSAETIMEDOUT\n"); break; case WSAEWOULDBLOCK: printf("WSAEWOULDBLOCK\n"); break; case WSAEACCES: printf("WSAEACCES\n"); break; default: break; } if(err!=0) { printf("Connection failed\n"); exit(1); } ... }




Reply With Quote