C++ 服务部署实战:从源码到公网访问

在一台 2C2G 的云服务器上实测:单文件 HTTP 服务器,g++ 编译,监听 8080 端口,从编译到公网访问全流程跑通。 1. socket 七步流程 示例是一个约 60 行的单文件程序 http_server.cpp,纯 Linux socket API、零第三方依赖,放在你自己的项目目录里即可。 socket() → bind() → listen() → accept() → recv() → send() → close() 建电话 插网线 开机待命 接电话 听需求 答复 挂断 步骤 调用 说明 1 socket(AF_INET, SOCK_STREAM, 0) IPv4 + TCP,返回文件描述符(Linux 一切皆文件) 2 bind(fd, &addr, sizeof) 绑定地址;INADDR_ANY(0.0.0.0)= 监听所有网卡 3 listen(fd, 16) 开始待命;16 是 backlog 等待队列长度 4 accept(fd, ...) 阻塞等客户端,返回新 fd(每客户一个) 5 recv(fd, buf, n, 0) 读 HTTP 请求报文(原始文本) 6 send(fd, resp, len, 0) 回 HTTP 响应 7 close(fd) 挂断,回 while 等下一客 要点: ...

2026 年 8 月 25 日

云服务器认识与使用:从虚拟机到公网部署

适用读者:有 C++/Qt 开发基础,用 VMware 虚拟机跑过 Linux、做过 Qt 界面开发,正在学 Go,手边有一台入门配置的云服务器(示例:2 核 / 2G / 40G)。 主线:先用起来,再理解原理。 1. 认识:你买的到底是台什么机器 核心要点:云服务器不是神秘的新东西——它就是「一台放在数据中心里、常年开机、你通过 SSH 远程使用的 Linux 电脑」,和你在 VMware 里装的那台 Ubuntu 骨子里是同一种东西。 1.1 先回忆:你在虚拟机里做过什么 用 VMware 装一个 Ubuntu 服务器版,在里面跑现成的后端程序、做 Qt 界面开发。 这台 Ubuntu 是「一台软件模拟出来的电脑」,运行在你自己的 Windows 上。 你能 ssh 连它、在里面装服务、跑程序——这些和云服务器上的操作几乎一模一样。 💡 为什么先从虚拟机讲起:你已经在「一台假的服务器」上做过大部分操作了。云服务器只是把「这台假的」换成「一台真的、别人帮你放在机房的」。 1.2 两个易混的词:「服务器」和「服务端」 词 含义 举例 服务器 (Server) 一台长期开机的电脑(硬件 + 系统) 你的云上主机、机房里的物理机 服务端 (Server-side) 一种软件的运行角色,相对客户端而言 你用 Qt 写的 TCP Server、Nginx、MySQL、Go 的 HTTP 服务 「开启服务器端」= 在某个服务器上,把一个服务程序跑起来并对外提供功能。 这个程序跑在哪台机器上都行(本机、虚拟机、云服务器),区别只在谁能访问到它——这一点正是第 2 章的核心。 1.3 一台服务器由什么组成 组成部分 作用 硬件 CPU、内存、磁盘、网卡——决定这台机器能干多重的活 操作系统 你熟悉的 Linux(Ubuntu、Alibaba Cloud Linux、CentOS 等) 服务软件 提供业务能力的程序:Nginx、MySQL、你的 Go 后端 IP / 端口 / 域名 IP 定位机器、端口定位机器上的程序、域名给人好记 2. 区别:云服务器 vs 虚拟机「开启服务器端」 核心要点:技术层面你几乎不换思路——都是「Linux + 服务程序」。真正的差别在 4 件事:谁能访问、关机了怎么办、坏了谁来修、按什么计费。 ...

2026 年 8 月 21 日