-
Socket
是Java
中为了支持基于TCP / UDP
协议的通信所提供的编程模型 -
Socket
分为Socket server
和Socket client
Socket server
监听某个端口, 接收
Socket client
发过来的连接请求建立连接, 连接建立后可以向Socket client
发送TCP packet
交互 (被动)Socket client
向某个端口发起连接, 并在连接建立后, 向
Socket server
发送TCP packet
实现交互 (主动) -
TCP
三次握手建立连接Step 1
Client
向Server
发送SYN(j)
, 进入SYN_SEND
状态等待Server
响应Step 2
Server
收到Client
的SYN(j)
并发送确认包ACK(j + 1)
, 同时自己也发送一个请求连接的SYN(k)
给Client
, 进入SYN_RECV
状态等待Client
确认Step 3
Client
收到Server
的ACK + SYN
, 向Server
发送连接确认ACK(k + 1)
, 此时,Client
和Server
都进入ESTABLISHED
状态, 准备数据发送
08-07
08-07