LINUX网络编程之设计流程
来源:互联网 发布:iphone ssh 默认端口 编辑:程序博客网 时间:2024/05/17 03:06
1/基于多进程并发的面发连接服务器软件的设计(TCP)
(1) 不固定进程数的并发模型设计流程
步骤1.主进程利用Socket创建主套接字server_socket并绑定到熟知的端口号。
步骤2.主进程调用accept()函数在熟知的端口号上等待客户端的连接。
步骤3.当有客户端请求到达是,主进程建立与该客户之间的通信连接,这是accept()返回一个用于该连接的从套接字new_socket.
步骤4.主进程创建一个新的从进程来处理该连接。
步骤5.主进程关闭套接字new_socket(此时,由于从进程中仍然打开着从套接字,故主进程的关闭操作仅仅只是把从套接字new_socket的引用计数减1,而不是真正关闭该从套接字)。
步骤6.主进程返回步骤2(继续等待客户端的连接)。
步骤7.从进程关闭主套接字server_socket,(此时,由于主进程中仍然打开着主套接字,故主进程的关闭操作仅仅只是把从套接字server_socket的引用计数减1,而不是真正关闭该主套接字)。
步骤8.从进程调用recv()和send()等操作与客户端进行数据交换。
步骤9.数据交互结束,从进程关闭从套接字new_socket.从进程结束。
(2)固定进程数的并发模型设计
1/父进程的设计流程
步骤1.主进程创建主套接字server_socket并绑定到熟知端口。
步骤2.主进程创建给定数目的从进程。
步骤3.主进程调用wait()或者waitpid()等待从进程结束,一旦有从进程退出,则主进程立马创建一个新的从进程,以保证从进程在数量上维持不变。
2/从进程的设计流程
步骤1.从进程调用accept()等待客户端的连接。
步骤2.当有客户端请求连接到达时,从进程维持与该客户端的通信连接,同时accept()调用返回一个新的从套接字new_socket.
步骤3.从进程调用recv()和send()等操作与客户端进行数据交互。
步骤4.数据交互结束,从进程关闭从套接字new_socket.
步骤5.返回步骤1.
- LINUX网络编程之设计流程
- linux网络编程之C/S流程socket函数
- LINUX网络编程基础流程
- linux网络编程基本流程
- linux C网络编程基本流程
- linux C网络编程基本流程
- Linux下TCP网络编程流程
- c#之socket网络编程流程
- linux应用之--网络编程
- Linux网络编程之广播
- linux之UDP网络编程
- Linux网络编程之广播
- Linux网络编程之库函数
- linux网络编程之Socket
- linux网络编程之 poll
- linux网络编程之 epoll
- Linux 网络编程之UDP
- Linux网络编程之广播
- XML的add,update.delete,select
- poj 2352(入门线段树)
- 遍历子窗口的函数
- 2012年8月29日 学习总结
- android中The connection to adb is down ,adb server didn't ACK 问题和解决
- LINUX网络编程之设计流程
- ArcGIS Viewer for Silverlight 系列:使用Application Builder快速构建GIS应用
- HD1170
- 上传android手机图片到服务器的方法
- 自定义UINavigationBar
- How to extract RPM or DEB packages
- 有关Android中Service实现UI更新(Binder的运用)
- .NET 批量插入数据,DataSet, SqlDataAdapter.Update
- C++操作leveldb示例笔记