V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bthulu
V2EX  ›  Java

为啥 Java 里就没有一个好用一点的异步 TcpClient?

  •  
  •   bthulu · 2022-11-05 22:27:53 +08:00 · 2283 次点击
    这是一个创建于 735 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一谈到异步 io, 就是 netty, 就要引入好几 M 甚至十几 M 的 jar 包.
    而原生的 AsynchronousSocketChannel 返回的 Future 是真难用, 为什么就不能返回 CompletableFuture 呢?

    11 条回复    2022-11-07 08:10:48 +08:00
    ALXG
        1
    ALXG  
       2022-11-06 03:45:46 +08:00   ❤️ 2
    面向对象编程就是你想要一个香蕉, 结果得到了一个手持香蕉的大猩猩
    xuanbg
        2
    xuanbg  
       2022-11-06 07:17:07 +08:00
    这其实不是面向对象的问题,而是设计者想多了的问题。也就是我们常说的过度设计。

    别管什么几十 M 了,体积大点不算毛病。
    ccppgo
        3
    ccppgo  
       2022-11-06 10:05:14 +08:00
    不是有句话叫 "当你意识到这是个问题的时候, 你的机会就来了" 看你了楼主
    oneisall8955
        4
    oneisall8955  
       2022-11-06 11:39:26 +08:00 via Android
    opengps
        5
    opengps  
       2022-11-06 12:45:32 +08:00
    自己写个就行,不过 socket 刚入门的话确实很多人处理不好
    zhuangzhuang1988
        6
    zhuangzhuang1988  
       2022-11-06 12:55:24 +08:00
    实在不行换个语言吧.
    wlingxiao
        7
    wlingxiao  
       2022-11-06 15:18:47 +08:00 via Android
    netty 只用 transport 的依赖会超过 1m?
    kwh
        8
    kwh  
       2022-11-06 19:11:12 +08:00
    @opengps 写一个???如果不用框架,如何请求 https 的,而且,http2 更复杂。
    kwh
        9
    kwh  
       2022-11-06 19:14:23 +08:00
    刚才百度了下,阿帕奇的 httpclient 好像支持 nio
    opengps
        10
    opengps  
       2022-11-06 19:35:42 +08:00
    @kwh java 的我写不了,我用的 C#
    bthulu
        11
    bthulu  
    OP
       2022-11-07 08:10:48 +08:00
    @kwh jdk11 里有现成的支持异步的 HttpClient, 但没有更底层一点的 TcpClient.

    @opengps C#有现成的, 比 Java 好用一万倍
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1922 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 91ms · UTC 16:23 · PVG 00:23 · LAX 08:23 · JFK 11:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.