0.前言
首先你要有C/C++的相关知识,并且安装好了VS2017。
在VS2017中建立一个C++的空项目,就可以开始了。
参考自:资料参考
1.初始化winsock
直接复制下面的代码到VS中,应该可以看到类似输出:
注意:我在开头include了各种乱七八糟的东西,并不都是必要的,而且这不是很好的编程习惯,千万别学!(逃
源码讲解:
1. 最开头的ifndef部分,参见下面的链接:
2. pragma warning的作用: VS有时会报错,我们需要屏蔽这些错误:
#pragma warning(disable:4996)
3.pragma comment的作用:
4. WSAstartup函数用来启动winsock库,其中第一个参数是使用的winsock版本,第二个参数是一个WASDATA结构体,用来存储winsock的额外信息。
5.WSAGetLastError函数用来捕获最近的一次错误代码。在以后的程序中我们会经常看到这个函数。
这个函数的存在是必须的,否则我们不知道在其中某步已经出错而继续进行下去,。
#define UNICODE
#endif
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <iphlpapi.h>
#include <stdio.h>
#include <cstdlib>
#include <iostream>
using namespace std;
#pragma warning(disable:4996)
#pragma comment(lib, "Ws2_32.lib")
int main(int argc, char *argv[])
{
WSADATA wsa;
printf("\n初始化中Initialising Winsock...");
if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
{
printf("Failed. Error Code : %d", WSAGetLastError());
return 1;
}
printf("初始化成功Initialised.");
return 0;
}
2. 创建socket
运行以下代码,应该可以看到这样的输出:
socket函数创建一个新的socket并且返回它的描述。
本程序创建的socket类型如下所示:
Address Family | AF_INET | 代表IPV4 |