下面给你一个循序渐进的 Linux C++ 网络编程入门路线,适合零基础到能写简单服务器/客户端。
至少掌握:
string、vector)std::thread)cd ls pwd mkdir rmvim 或 vscodeg++#include <iostream>
#include <cstring>
#include <unistd.h>
#include <arpa/inet.h>
int main() {
int server_fd = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in addr{};
addr.sin_family = AF_INET;
addr.sin_port = htons(8888);
addr.sin_addr.s_addr = INADDR_ANY;
bind(server_fd, (sockaddr*)&addr, sizeof(addr));
listen(server_fd, 5);
std::cout << "等待连接..." << std::endl;
int client_fd = accept(server_fd, nullptr, nullptr);
char buf[1024];
int n = recv(client_fd, buf, sizeof(buf), 0);
send(client_fd, buf, n, 0);
close(client_fd);
close(server_fd);
}
#include <iostream>
#include <cstring>
#include <unistd.h>
#include <arpa/inet.h>
int main() {
int fd = socket(AF_INET, SOCK_STREAM, 0);
sockaddr_in addr{};
addr.sin_family = AF_INET;
addr.sin_port = htons(8888);
inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr);
connect(fd, (sockaddr*)&addr, sizeof(addr));
send(fd, "hello", 5, 0);
char buf[1024];
int n = recv(fd, buf, sizeof(buf), 0);
std::cout << buf << std::endl;
close(fd);
}
编译:
g++ server.cpp -o server
g++ client.cpp -o client
perror)selectpollepoll(Linux 重点)epoll chat server✅ 先写 裸 socket,不要直接学框架
✅ 理解 epoll 再学 libevent / boost.asio
✅ 每写一个程序,画流程图
✅ 多调试(gdb、netstat)
如果你愿意,我可以:
你现在是 完全零基础 还是 有 C++ 基础但不懂网络?