1:用vs2017的时候碰到过未能识别标识符的问题。原因可能有以下两点
1:头文件的引用问题,下面这些基本引用应该都是需要的,具体哪些代码对应什么头文件没有去验证过。
#include <iostream>
#include <cstdlib>
#include <WinSock2.h>
#include <WS2tcpip.h>
#pragma comment(lib,"ws2_32.lib")
using namespace std;
2:VS本身识别的问题,碰到过虽然头文件已经引用但仍旧出现报错,但是程序可以运行,甚至有些时候将某个引用删除再打上去它就不在报错了,对于这种情况,在确认代码没错的情况下(比如从网上copy或书里来的,大概率没错)。 可以暂时忽略,也可以做一些简单设置(具体哪篇文章忘了)。大概是工具--》interlisgence。。。。
2:书本上的代码百分之99%都是对的,为什么你运行不出来,可能就是版本之类的问题,可以网上找对应的代码,结合起来看,书本上的代码的好处在于代码规范性很不错。
3:写代码需要注重逻辑和细节
比如connect链接验证的if语句中忘写==INVALID_SOCKET。。。。。
if (connect(hSocket, (SOCKADDR*)&servAddr, sizeof(sockaddr))== INVALID_SOCKET) {//第二处改,将sizeof中的sockAddr改成了sockaddr
//ErrorHandling("connect() error");
WSAGetLastError();
}