TCP/IP(十一)TCP的连接管理(八)socket网络编程

一  socket网络编程

 socket 基本操作函数 bind、listen、connect、accept、recv、send、select、close

说明:  本文需要'C语言'、'syscall系统调用'、'OS 操作系统'支持,如果不了解可以暂时'跳过'

备注: 知道对应'库函数'的更'底层'机制

思考: socket函数与'FIN'、'ACK'等特殊TCP包的关系,'如何'触发的呢?

①  针对 TCP 应该如何 Socket 编程?

1、'图谱'

TCP/IP(十一)TCP的连接管理(八)socket网络编程_第1张图片

2、socket编程对应'函数'的作用

TCP/IP(十一)TCP的连接管理(八)socket网络编程_第2张图片

②   listen 时候参数 backlog 的意义?

1、Linux内核中会'维护'两个队列

TCP/IP(十一)TCP的连接管理(八)socket网络编程_第3张图片

2、 'listen' 函数

TCP/IP(十一)TCP的连接管理(八)socket网络编程_第4张图片

③  accept 发生在三次握手的哪一步?

1、客户端 'connect' 成功返回是在'第二次'握手

2、服务端 'accept'  成功返回是在'三次握手成功之后'

TCP/IP(十一)TCP的连接管理(八)socket网络编程_第5张图片

④   客户端调用 close 了,连接是断开的流程是什么?

分析: 客户端'主动调用了 close',会'发生'什么?

TCP/IP(十一)TCP的连接管理(八)socket网络编程_第6张图片

⑤  没有 accept,能建立 TCP 连接吗?

TCP/IP(十一)TCP的连接管理(八)socket网络编程_第7张图片

没有accept 能建立TCP连接

⑥   没有 listen,能建立 TCP 连接吗?

说明: '了解'即可

服务端没有 listen,客户端发起连接建立,会发生什么?

你可能感兴趣的:(TCP/IP,tcp/ip,socket网络编程)