完了,又被腾讯面试官拷打了 。。。

本文讲述了在腾讯面试中遇到的两个网络编程问题。第一个问题是服务端调用listen后sleep,客户端的connect能否成功。分析表明,即使服务端休眠,TCP三次握手仍能完成,connect能成功。第二个问题是已建立连接的一端休眠时,write和send是否能成功。答案是能成功,因为write仅将数据放入发送缓冲区,内核会负责发送,而接收方的睡眠不影响内核接收数据。
摘要由CSDN通过智能技术生成


最近有个同学跟我反馈,去面腾讯的时候,又被腾讯面试官拷打了 。

因为他是搞 Go 后端的,没怎么接触过 socket 编程,结果问了好几个网络编程的问题,直接懵逼了。

图片

图片

第一个问题

服务端调用listen之后sleep休眠,请问客户端的connect能不能成功?

这个问题实际上在考察大家对于 TCP 三次握手的底层原理,很多同学对于 TCP 三次握手的理解只停留在SYN和ACK报文的交互,而关于三次握手过程中,内核做了哪些事情?socket 编程和三次握手有什么关系?都不太明白,那这样在遇到这种问题就比较难回答了。

我们先看看客户端连接服务端时,发生了什么?

图片

  • 服务端和客户端初始化 socket

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值