基础概念🌐
Linux网络编程主要涉及系统调用、套接字编程及网络协议实现。以下是核心知识点:
套接字(Socket)
- 使用
socket()
创建通信端点 - 通过
bind()
绑定IP和端口 listen()
与accept()
实现服务端通信
- 使用
TCP/IP协议栈
- 传输层:
send()
/recv()
数据传输 - 网络层:
inet_pton()
地址转换 - 应用层:HTTP/FTP等协议实现
- 传输层:
网络工具实践
netstat
查看连接状态tcpdump
抓包分析iptables
配置防火墙规则
学习路径🗺️
- 入门:Linux命令行与shell脚本教程
- 进阶:网络编程工具实战
- 参考:Linux内核源码分析
示例代码📚
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main() {
int server_fd = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in address = {0};
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons(8080);
bind(server_fd, (struct sockaddr*)&address, sizeof(address));
listen(server_fd, 3);
printf("Server listening on port 8080\n");
return 0;
}