78-Linux_tcp服务器客户端编程流程

tcp服务器客户端编程流程

  • 一.c/s模型
    • 1.什么是c/s模型?
    • 2.c/s模型的逻辑
  • 二.TCP服务器端和TCP客户端的工作流程
    • 1.流程
    • 2.TCP三次握手
    • 3.TCP四次挥手

一.c/s模型

1.什么是c/s模型?

答:(c/s)模型即(客户端/服务器端)模型
所有的客户都通过服务器端访问所需资源.
模型如图所示:
78-Linux_tcp服务器客户端编程流程_第1张图片

2.c/s模型的逻辑

C/S 模型的逻辑很简单。服务器启动后,首先创建一个(或多个)监听 socket,并调用 bind 函数将其绑定到服务器感兴趣的端口上,然后调用 listen 函数等待客户连接。服务器稳定运行之后,客户端就可以调用 connect 函数向服务器发起连接了。由于客户连接请求是随机到达的异步事件,服务器需要使用某种 I/O 模型来监听这一事件。I/O模型有多种,服务器使用的是 I/O 复用技术之一的 select 系统调用。当监听到连接请求后,服务器就调用 accept 函数接受它,并分配一个逻辑单元为新的连接服务。逻辑单元可以是新创建的子进程、子线程或者其他.服务器给客户端分配的逻辑单元是由 fork 系统调用创建的子进程。逻辑单元读取客户请求,处理该请求,然后将处理结果返回给客户端。客户端接收到服务器反馈的结果之后,可以继续向服务器发送请求,也可以立即主动关闭连接。如果客户端主动关闭连接,则服务器执行被动关闭连接。至此,双方的通信结束。需要注意的是,服务器在处理一个客户请求的同时还会继续监听其他客户请求,否则就变成了效率低下的申行服务器了(必须先处理完前一个客户的请求,才能继续处理下一个客户请求),服务器同时监听多个客户请求是通过 select 系统调用实现的。

二.TCP服务器端和TCP客户端的工作流程

1.流程

78-Linux_tcp服务器客户端编程流程_第2张图片

2.TCP三次握手

78-Linux_tcp服务器客户端编程流程_第3张图片

3.TCP四次挥手

78-Linux_tcp服务器客户端编程流程_第4张图片

你可能感兴趣的:(Linux,计算机网络,服务器,tcp/ip,linux)