最近学习网络编程,看了周立发老师的blog 也模仿写了一个文件管理并发服务器。
选择多进程并发服务器
技术难点:建立tcp 服务器
fork 产生新的处理进程
使用getopt 函数使服务器配置参数化, 使用同一的linux风格
设置端口复用,??
浏览文件系统,
下载文件
思路:
1 首先建立一个被动套接字
设置套接字的option选项
注册一个信号量 来回收僵死进程,回收系统资源
2 使用getopt 函数遍历分析用户的参数录入
host 地址, port, listen_num, log_addr
3 bind ,listen
进入循环处理
accept
如果有连接到来则进入一个新的进程,父进程并关闭新连接的套接字。
子进程要关闭主套接字。
4 判断用户的请求
基于浏览器
发送过来http 请求
get %s http ...
使用sscanf 函数 获取请求字符串
在该socketfd 标示符 打开一个写 的标示符 newfd = fdopen( sockfd, "w");