2019-06-05

循环无连接服务器基本流程

1,创建套接字

2.绑定端点地址(INADDR_ANY+端口号)(不要指定具体的ip)

3.反复接受来自客户端的请求

4.遵循应用层协议,构造响应报文,发送给客户。

数据发送:

服务器端创建的套接字不能使用connect()函数

无连接的服务器使用sendto()函数发送数据报

获取客户端点地址

调用recvfrom()函授接受数据时,自动提取

循环面向连接服务器基本流程:

1.创建(主)套接字,并绑定熟知端口号

2.设置(主)套接字为被动监听模式,准备用于服务器

3.调用accept()函数接收下一个连接请求(通过主套接字)创建新套接字用于与该客户端建立连接

4.遵循应用层协议,反复接受客户端请求,构造并发送响应(通过新套接字)

5.完成为特定客户的服务器后,关闭与该客户之间的连接,返回步骤3

并发无连接服务器基本流程

主线程1;创建套接字,并绑定数值端口号

主线程2.反复调用recvfrom()函数,接受下一个客户请求,并创建新线程处理该客户响应。

子线程1,接受一个特定的请求

子线程2,依据应用层协议构造响应报文,并调用sendto()发送

子线程3,退出(一个子线程处理一个请求后即终止)

并发面向连接服务器基本流程

主线程1:创建(主)套接字,并绑定熟知端口号。

主线程2:设置(主)套接字为被动监听模式,准备用于服务器

主线程3:反复调用accept()函数接收下一个连接请求(通过主套接字),并创建一个新的子线程处理该客户响应。

子线程1:接收一个客户的服务请求(通过新创建的套接字)

子线程2:遵循应用层协议与特定客户进行交互;

子线程3:关闭/释放连接并退出(线程终止)

你可能感兴趣的:(2019-06-05)