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.

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);
	}

                 ...

              }
Can any networking GURU here points out what could be the reason? Thanks for your inputs.