安装开发工具
sudo yum groupinstall "Development Tools" # 安装gcc、g++、make等
sudo yum install libevent-devel boost-devel # 可选:安装高级网络库
配置网络
确保系统网络连通,可通过ping命令测试。
创建套接字
int sockfd = socket(AF_INET, SOCK_STREAM, 0); // AF_INET: IPv4, SOCK_STREAM: TCP
if (sockfd < 0) { perror("socket failed"); exit(-1); }
绑定地址与端口
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = INADDR_ANY; // 监听所有IP
addr.sin_port = htons(8080); // 端口号(需与服务器一致)
if (bind(sockfd, (struct sockaddr*)&addr, sizeof(addr)) < 0) {
perror("bind failed"); exit(-1);
}
监听与接受连接(服务器端)
listen(sockfd, 3); // 监听队列长度
int client_fd = accept(sockfd, NULL, NULL); // 阻塞等待客户端连接
数据收发
char buffer[1024] = {0};
read(client_fd, buffer, sizeof(buffer)); // 接收数据
send(client_fd, "Hello from server", 18, 0); // 发送数据
关闭连接
close(client_fd);
close(sockfd);
perror输出错误信息。root权限,建议测试时使用高端口(如8080)。firewalld或iptables是否放行端口:sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
pthread库或Boost.Asio实现并发处理。SOCK_DGRAM)或HTTP协议(结合libcurl)。OpenSSL库)。telnet或nc命令模拟客户端连接:telnet 127.0.0.1 8080
tcpdump查看网络数据包:sudo tcpdump -i lo port 8080 -n
参考资料: