网络编程面试题27 题
- 01 同步/异步、阻塞/非阻塞有什么区别?
- 02 常见 Socket 选项有哪些?SO_REUSEADDR、TCP_NODELAY、SO_KEEPALIVE 分别有什么用?
- 03 非阻塞 connect 如何判断连接成功?超时怎么实现?
- 04 连接池是什么?网络客户端为什么要使用连接池?
- 05 零拷贝是什么?它是如何实现的?
- 06 什么是 C10K 问题?如何解决?
- 07 为什么 Socket 的 read/write 可能只读写一部分?如何处理半包读写?
- 08 五种 IO 模型是什么?它们有什么区别?
- 09 长连接为什么需要心跳?心跳、超时和重连如何设计?
- 10 epoll 的水平触发(LT)和边缘触发(ET)有什么区别?
- 11 listen backlog 是什么?连接队列满了会发生什么?
- 12 Proactor 和 Reactor 有什么区别?
- 13 Reactor 模型是什么?有哪几种?
- 14 select、poll、epoll 有什么区别?
- 15 Socket 是什么?TCP socket 的通信流程是怎样的?
- 16 TCP 为什么会有粘包和拆包?应用层如何做消息边界?
- 17 epoll 的原理是什么?为什么比 select/poll 高效?
- 18 事件循环里为什么不能执行耗时任务?任务饥饿会导致什么问题?
- 19 自定义 TCP 协议为什么常用长度字段?长度字段帧怎么设计?
- 20 Socket 半关闭是什么?shutdown 和 close 有什么区别?
- 21 Socket 发送缓冲区满了说明什么?网络编程如何处理背压?
- 22 TCP Keepalive 和应用层心跳有什么区别?应该怎么选?
- 23 网络编程中连接超时、读超时、写超时有什么区别?
- 24 网络服务如何优雅关闭连接?为什么不能直接 kill 进程?
- 25 长连接服务为什么容易内存泄漏?如何排查和预防?
- 26 accept 惊群是什么?多进程网络服务器如何避免惊群?
- 27 UDP 上如何自己实现可靠传输?需要考虑哪些机制?
没有符合条件的题目。