我需要通过TCP/IP与基本消息/响应协议的服务器进行交互(因此对于每个请求,我将收到一个定义的响应).
在JVM生态系统中,我认为Java Socket是15年前使用的工具,但我想知道现在JDK中是否有更合适的东西?例如,对于Java套接字,如果没有收到回答,则仍然需要手动超时请求,这感觉非常古老.
那么JDK或JVM领域有什么新东西吗?
不,现在有更好的选择,它允许您在没有额外线程的情况下异步实现您的客户端/服务器。
查看来自 nio 的SocketChannel或来自 nio2 的更好的AsynchronousSocketChannel。检查本教程
特别是后一个选项将允许您只启动连接侦听器并注册回调,每当请求新连接、数据到达、数据写入等时都会调用该回调。
还可以考虑查看一些高级解决方案,例如Netty。它将照顾网络核心,将负载平均分配给执行器。此外,它还提供了网络层和处理层的明确分离。对于处理层,它将为您提供大量可重用的通用协议编解码器。
| 归档时间: |
|
| 查看次数: |
922 次 |
| 最近记录: |