[linux,c++]使用指针函数实现多个函数调用_Advanced

这段程序的中心思想是:想要模拟在网络通信中的服务器端接受来自多个用户的请求,

服务器是通过创建一个TCPListener的进程(线程),来接受来自多个用户发送的请求事件(events)或是连接。

我们知道服务器是作为运行在主机上的一个进程,该进程中的某些方法为其他程序或是用户提供服务,

那么其他程序或是用户是如何找到这个提供服务的程序的呢? 答案是通过端口号来唯一锁定该服务器,

如果涉及到远程访问的话,还需要涉及到主机号+端口号来锁定唯一的服务器,即请求者通过向该端口号发送请求消息,使得消息被服务器端接收到。


在服务器(进程)被创建后,它会创建一个 监听进程(该监听进程的声明周期与服务器的声明周期是相同的),

这个监听进程用来监听唯一指定服务器端的端口上面是否有请求者发来请求消息,如果有请求消息,

则该监听进程并不亲自执行这个消息, 而是创建一个新的子进程(线程)然后将这个请求消息分配给新创建的子进程(线程),

等到子进程(线程)在调用服务器端上的某些资源和方法执行请求得到结果之后,会将结果返回给监听进程,

监听进程再根据请求者的地址信息,将结果发送至请求者。


当然,上面所述的仅仅是最简单的一种实现思想,在大多数的服务器接收请求信息的时候,采用的是线程来作为调度单元的,

并且基于的模型也更加的复杂,如果需要对客户的请求响应时间并不很高的话,通常在服务器端会开辟一个响应时间的队列,

这个队列将作为一个用于临时存放事件的缓冲区,如果请求到来而服务器端的进程来不及响应,那么将其存放至队列中,带到

服务器端的监听进程(通常也成为是分配者)会从队列中(队头&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值