1、环境
物理主机系统:macOS Catalina 10.15.4
虚拟机系统:Windows 10 专业版 x64
虚拟机软件:Parallels Desktop 15 for Mac Pro Edition, version 15.1.4 (47270)
浏览器:Edge
编程环境(IDE):Visual Studio 2019
2、服务器设计
- 调用WSAStartup函数,初始化winsock。
- 调用socket()函数创建一个Socket
- 调用bind()函数和socket绑定
- 调用listen()函数监听一个socket
- 调用accept()函数接受由一个客户端发起的连接
- 为该连接创建一个线程来处理与对应客户端有关的服务
- 调用send()和recv()函数向客户端发送HTML消息或GIF、TXT格式的文件。
- 客户端断开连接后,调用_endthread()函数关闭线程
- 调用shutdown(),closesocket()函数断开与服务器的连接,关闭socket
3、效果展示
1. live2D页面
先将 live2d.html(效果是可交互live2d)及其组件(js、css)放入服务器程序目录里,然后直接在浏览器访问。访问成功,网页左下角出现 live2d 动漫小人:

2. 进一步,完整的基于 bootstrap 的个人简历网页+live2D
将 resume.html 及其组件放入服务器程序目录里,然后直接在浏览器访问,访问成功:

3. 多线访问
多开浏览器页面同时访问服务器,均能访问成功:

4、C++ 代码
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h> // For binary handle options
#include <sys\stat.h> // For binary write()
#include <io.h> // Needed for open(), close(), write()
#include <process.h> // Needed for _beginthread() and _endthrea

本文档展示了如何在Windows环境下使用C++和Winsock库搭建一个Web服务器。通过WSAStartup到closesocket的一系列步骤,详细解释了服务器设计过程,包括初始化、监听、接受连接和处理请求。并提供了实际效果,如加载live2D页面和个人简历网页,以及展示多线程访问的稳定性。
最低0.47元/天 解锁文章
155





