首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如何连接失败,求解释

2012-11-01 
怎么连接失败,求解释C/C++ code#include winsock2.h#pragma comment(lib,ws2_32.lib)#include cstdli

怎么连接失败,求解释

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客户端,你的程序没有问题
检查服务器的状态

热点排行