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