目录
个人主页:东洛的克莱斯韦克-优快云博客
引言
有关套接字编程的细节和更多的系统调用课参考《UNIX环境高级编程》一书,可以在如下网站搜索电子版,该书在第16章详细的介绍了各种接口。
Jiumo Search 鸠摩搜索 - 文档搜索引擎 (jiumodiary.com)
而在实际的编程中,总是用系统调用的接口难免会有些繁琐。我们可以根据自己的需求,用面向对象的思想封装出接口简洁的类。
也可以把类设计成单例,以组件的形式供上层使用。而上层坐拥下三层协议栈,无需关心网络通信的细节。
获取套接字
首先要用socket接口获取套接字文件描述符
int fd = socket(AF_INET, SOCK_STREAM, 0)
AF_INET表示IPv4因特网域
SOCK_STREAM表示该套接字的类型是全双工,面向字节流和链接的
第三个参数 0 表示根据前两个参数选择默认的协议,此时选择的就是TCP/IPv4协议栈
绑定套接字
bind(_socket_fd, (const struct sockaddr *)&address, (socklen_t)sizeof(address))
绑定套接字之前先用 struct sockaddr_in 结构体填充地址信息。
IPv4因特网域用