前言:很久以前就搭过服务器,当时一旦遇到问题根本就无法解决,全都是原理级才能解释,当时也是非常令人难受,解决了问题以后也不知道为什么,不过现在学习了整个底层原理后,以前遇到的问题全都迎刃而解了
1.监听端口
创建套接字:套接字选交互方和模式
绑定端口和IP:根据交互方填充结构体,最好先初始化,传端口号和IP地址时注意转字节序,因为结构体不同所以还要传size,防止越界
监听:队列长度根据需要设
2.联网
阻塞等待...建立连接(进行三次握手)
接住数据包:新建一个套接字接住返回值,通过监听用的套接字接住一个对应交互方的结构体,IP和端口号字节序注意转回来,传出size,此处和绑定部分类似,总之,联网时,也是通过句柄思想,新建一个套接字接住内容,结构体接住详细信息(交互方domain,IP,端口号),还有size
处理数据:..
发送数据:通过当前连接建立的套接字发出内容
回到循环头,继续阻塞等待..建立连接..新建套接字接住返回值.......
触发退出条件,退出,进行四次挥手
错误分析:都是报错返回小于0,具体自己man,不过值得一提的是,可以用一个错误宏来精简代码