Socket 跟 ServerSocket 理解TCP协议

Socket 和 ServerSocket 理解TCP协议
ServerSocket只负责请求链接的三次握手和创建Socket,它不负责管理数据的接受与发送以及Socket的链接状态。而Socket是负责数据的接受和发送,并管理链接关闭和保持。

服务端的Socket会跟ServerSocket有一样的本地端口号。

用码头的例子来理解TCP协议是比较具体生动的。
应用程序  目的地
ServerSocket 码头管理员
服务端Socket 码头搬运工
客户端Socket 需要运货的商家

码头管理员负责接收商家的请求,并安排相应的搬运工负责该商家的货物搬运,使商家与搬运工一一对应负责货物搬运。

码头相当于一台电脑,码头管理员的工号就相当于ServerSocket用于监听请求链接的端口号,由该码头管理员安排的搬运工,就会被分配到码头管理员号和商家号,这两个号是与其他搬运工的唯一标识。就像socket的本地端口号和远程端口号。

商家要想把货物送往目的地,就必须先向码头管理员申请到相应的搬运工,再用搬运工负责把货物送往目的地,搬运工在商家和目的地之间起到中间桥梁的作用。