大部分网络应用程序在编写的时候都是假设一个客户端,一个是服务器。服务器是为客户端提供特定的服务。可分为重复型
和并发型
。
重复型:
第一步 等待一个客户端请求
第二步 处理客户端请求
第三步 发送响应给发起请求的客户
第四步 返回第一步
优点 | 缺点 |
---|---|
简单易懂便于学习 | 在第二步的时候无法给其他客户端提供服务,需要等当前客户端处理结束到达第四步才能接受新的客户端的请求 |
并发型:
第一步 等待一个客户请求的到来。
第二步 启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务
或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操作系统。生成的新服务器
对客户的全部请求进行处理。处理结束后,终止这个新服务器。
第三步 返回第一步。
优点 | 缺点 |
---|---|
利用生成其他服务器的方法来处理客户的请求如果操作系统允许多任务,那么就可以同时为多个客户服务。 | 需要对操作系统支持多任务 |
一般来说对于TCP服务器来说是并发型,对于UDP服务器来说是重复型。
参考文献:
《TCP-IP详解卷一》