netty如何解决一个应用既作为客户端又作为服务端的问题?

netty如何解决一个应用既作为客户端又作为服务端的问题?
一个通讯链路中有三个应用,A,B,C;A只作为客户端,B既为A的服务端,又作为C的客户端,而C为B的服务端;
通讯链路为A—B—C,C的返回信息经B处理后再返回给A。

如果有实例代码,最好能帮忙给个链接,非常感谢!

2个回答

怎么能够即作为客户端又作为服务端呢?netty本质上是TCP协议。
如果是用netty,通常解决你这种问题的思路是:
A,B,C都看做客户端,它们同连一个服务端D,ABC的内部通信就是客户端之间的通信,你要实现通信顺序控制在服务端完成控制就是了

可以在服务器b中的handler中的
channelactive方法中,构建socketchannel连接服务器c,然后逻辑和客户端a一样,重要的是通过channelcontext ctx获取eventloop,作为新建连接的eventloop,也就是复用服务器b的eventloop,让服务器b的channel和新建的socketchannel处于一个eventloop也就是一个线程

qq_40920735
qq_40920735 回复小白求学进阶: 他说的好像是b站一个netty视频的原话,你可以看看这个https://blog.csdn.net/QH_JAVA/article/details/78449717
10 个月之前 回复
weixin_40295575
小白求学进阶 请问有没有简单的例子呢~对这块不是很熟悉
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问