本文目的在于整理一下网络编程过程中问题,旨在加深自己的理解,同时也供读者参考。
参考书:《UNIX网络编程》
从以下几个方面进行介绍:
- 网络编程的基础知识(TCP/IP协议)
- TCP客户端/服务器(echo服务)例子
- 高效的网络编程:阻塞/非阻塞,同步/异步,IO复用(select/poll/epoll学习,跨平台封装的库libev)
- 非阻塞+IO复用的echo服务
- 网络开发中的master/worker编程模型:Nginx/Uwsgi(这里再讨论下惊群问题)
- 多进程+非阻塞+IO复用的echo服务
- 用python来写一个http(https)的代理:pyproxy
- 总结
- 附录常用工具及常见问题:
- tcpdump/wireshark/strace使用
- 客户端/服务器的异常状况
- 客户端正常断开(发送FIN包)
- 客户端异常崩溃(发送FIN包)
- 客户端突然断网(不发送FIN包,不再响应)
- 服务器正常终止(发送FIN包)
- 服务器异常崩溃(发送FIN包)
- 服务器异常奔溃后重启
- 服务器突然断网(不在送FIN包,不再响应)
- accept返回前连接夭折
时间: 2024-12-24 15:05:17