前言
网络编程的核心在于套接字(Socket),它是不同计算机间通信的'端点'。通过 Socket 接口,应用程序可以抽象地访问网络资源,实现进程间通信或跨机器数据交换。
核心头文件
编写网络程序通常依赖以下四个标准头文件,它们涵盖了大部分常用函数与常量定义:
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
基础接口详解
socket
创建通信端点的入口。返回的描述符是后续所有操作的基础。
int socket(int domain, int type, int protocol);
domain:地址族,如AF_INET(IPv4)。type:类型,SOCK_STREAM对应 TCP,SOCK_DGRAM对应 UDP。protocol:协议,设为 0 由系统自动选择。 成功返回非负描述符,失败返回 -1 并置位errno。
bind
将套接字绑定到本地地址(IP + 端口)。
int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);
注意这里的 addr 指的是本机要绑定的地址,而非服务器地址。通常使用 INADDR_ANY 监听所有网卡。
listen
将 TCP 套接字转为被动监听状态。
int listen(int sockfd, int backlog);


