案例:用消息队列实现许多客户端和服务器端的通信,要求是,许多客户端都可以向服务器端发送消息,服务器端在接受这些消息之后,再将消息回发给对应的客户端。
解决思路:所有客户端都往1号通道上发送消息,并且在发送的内容的最前面放上自己进程的进程号,那么当服务器端收到中众多客户端发来的消息之后,通过解析主要内容的最前面内容,拿出对应客户端进程号,将其作为发送通道发送给对应的客户端,那么客户端接受的消息就来自以自己进程号为通道号的消息,服务器在1号通道等待接受数据,没有数据就阻塞。
注意:
(1)发送消息的,提前设定要发的通道号(buf.channel=1,就说明要发送的通道号是1号);而接受消息时直接将接受通道号作为参数传过去。
(2)每次接受前,读前都要刷新缓冲区
(3)因为客户端把自己的进程号放在发送消息的前面,(假如是进程号为

本文提供了一个案例,演示如何使用消息队列让多个客户端与服务器端进行通信。客户端通过在消息前附加自己的进程号发送消息到1号通道,服务器解析并根据进程号回发消息。关键点包括指定发送通道号、接收时刷新缓冲区以及正确计算消息长度。

661

被折叠的 条评论
为什么被折叠?



