初探 SOCKET TCP (C代码示例)

2020-07-23  本文已影响0人  Atomas

TCP SOCKET 的建立流程:

tcp-socket-flow-chart

通过代码来实践下:

tcp_server.c

以上的代码主要实现:

1. 建立连接(3次握手)

2. 通过accept监听已建立好的连接

3-way handshake process

1. 服务端收到客户端发出SYN的请求后,会返回ACK+SYN, 并将请求放入半连接SYN-Q队列

2. 客户端收到服务端发出ACK+SYN请求后,会发送ACK的确认请求

3. 服务端收到客户端的ACK请求后,表明3次握手已完成,将SYN-Q的R1取出,放入ACCEPT-Q的队列(可由tcp_server.c中backlog进行设置)

4. accept()发现有已完成的请求R1, 将其取出,并返回一个新建的socket供后续的数据传输操作(write/read)

上一篇下一篇

猜你喜欢

热点阅读