如何连接失败,求解释

怎么连接失败,求解释
C/C++ code

#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib")
#include <cstdlib>
#include <string>

#include <iostream>
using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
    /*定义socket数据变量*/
    WSADATA wsd;
    SOCKET sHost;        // 与服务器通信的socket
    SOCKADDR_IN serAddr; //服务器地址
    char buf[BUF_SIZE];
    int retVal;

    if(WSAStartup(MAKEWORD(2,2),&wsd) != 0)
    {
        printf("初始化失败!\n");
        return -1;
    }

    //创建Socket
    sHost=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    if(sHost == INVALID_SOCKET)
    {
        printf("Socket failed!\n");
        WSACleanup();
        return -1;
    }

    //设置服务器地址;
    serAddr.sin_family=AF_INET;
    serAddr.sin_addr.S_un.S_addr=inet_addr("192.168.5.205");
    serAddr.sin_port=htons(9990);//设置通信端口;

    //连接到服务器
    retVal=connect(sHost,(const sockaddr*)&serAddr,sizeof(serAddr));
    if(retVal == SOCKET_ERROR)
    {
        printf("Connect failed\n");
        closesocket(sHost);
        return -1;
    }

    //发送消息
    while(true)
    {
        printf("Please input a string to send: ");
        string str;
        getline(cin,str);
        ZeroMemory(buf,BUF_SIZE);//清空缓冲队列;
        strcpy(buf,str.c_str());
        retVal=send(sHost,buf,strlen(buf),0);

        if(retVal == SOCKET_ERROR)
        {
            printf("send faild\n");
            closesocket(sHost);
            WSACleanup();
            break;
        }
        retVal=recv(sHost,buf,strlen(buf),0);

        printf("Recv from Server: %s\n",buf);

        if(strcmp(buf,"quit") == 0)
        {
            printf("quit!\n");
            break;
        }


    }
    closesocket(sHost);
    WSACleanup();
    
    return 0;
}

//刚学习网络编程,前辈们帮我指点一下,为什么会连接失败呢



------解决方案--------------------
为什么没看到bind()端口??而且这个通信好像是c/s模型的吧。。。怎么只有一个cpp,客户端呢
------解决方案--------------------
连接失败看下错误码,或者检查下服务器端口是否侦听ing
------解决方案--------------------
作为TCP客户端,你的程序没有问题
检查服务器的状态