第8周课下作业2(补)
把课上练习3的daytime服务器分别用多进程和多线程实现成并发服务器并测试
基于进程的并发编程
构造并发服务器最自然的方法就是,在父进程中接受客户端连接请求,然后创建一个新的子进程来为每个客户端提供服务。
参考书上P683,基于进程的并发服务器代码。打开服务器端后,开启两个客户端,服务器能同时为两个客户端提供服务,如下图所示。
修改echo代码,实现daytime功能的并发服务器。用两个客户端向服务器请求服务,服务器响应了两个客户端请求。
具体代码—>移步码云
基于线程的并发编程
主线程不断地等待连接请求,然后创建一个对等线程处理该请求。参考书上P695实例代码,基于线程的并发echo服务器。打开服务器端后,开启两个客户端,服务器能同时为两个客户端提供服务,向两个客户端回送了它们上传的文本,如下图所示。
同理,修改echo代码,使其提供显示时间的功能,用两个客户端向服务器请求服务,服务器响应了两个客户端请求,显示了两次客户端请求的时间,如下图所示。
具体代码—>移步码云
总结
本来以为会很难,刚开始做的时候带着畏难情绪,想放弃。但发现只要最基本的CS编程模型弄懂了,想实现服务器并发,只需要按书上第12章修改即可;想要修改服务器提供的功能,也只需要换掉服务器的功能函数,修改参数,稍加调试即可。