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

如何快速和小白解释 什么是 handlers?

  •  
  •   redhatping · 2016-09-09 16:09:52 +08:00 · 4161 次点击
    这是一个创建于 2779 天前的主题,其中的信息可能已经有所发展或是发生改变。

    谢谢 各位? 其实小白就是我

    31 条回复    2016-09-12 08:33:08 +08:00
    xingo
        1
    xingo  
       2016-09-09 16:13:50 +08:00
    handle + r = handler
    redhatping
        2
    redhatping  
    OP
       2016-09-09 16:19:34 +08:00
    语境:
    When you fetch a URL you use an opener (an instance of the perhaps confusingly-named urllib.request.OpenerDirector). Normally we have been using the default opener - via urlopen - but you can create custom openers. Openers use handlers. All the “ heavy lifting ” is done by the handlers.
    shijingshijing
        3
    shijingshijing  
       2016-09-09 16:21:17 +08:00
    我用的是提线木偶举的例子,仔细想想还是有偏差,但是基本上就懂了。同理,在解释变量和变量地址的时候,我用的是酒店房间和房号举的例子,小弟们好像也能秒懂。
    FrankFang128
        4
    FrankFang128  
       2016-09-09 16:26:11 +08:00   ❤️ 7
    句柄是我见过最傻逼的翻译
    crab
        5
    crab  
       2016-09-09 16:29:10 +08:00
    @FrankFang128 不是缺省吗。😁
    sensui7
        6
    sensui7  
       2016-09-09 16:36:00 +08:00
    手柄或者摇杆
    sensui7
        7
    sensui7  
       2016-09-09 16:37:47 +08:00
    @crab 现在再看到这些词, 感觉都不像中文了. 套接字什么的肯定是日语.
    binux
        8
    binux  
       2016-09-09 16:42:00 +08:00
    我也不知道「什么是 handlers 」,不同语境有不同含义。
    redhatping
        9
    redhatping  
    OP
       2016-09-09 16:45:07 +08:00
    @binux 想到了,在第二楼 有写明白。
    mozutaba
        10
    mozutaba  
       2016-09-09 16:47:29 +08:00
    @sensui7 请用 视窗,工人,数据库经理 造句。
    noli
        11
    noli  
       2016-09-09 16:49:02 +08:00
    @FrankFang128 据说,“句柄” 的正确读音是 gou1 bing4 ,“句”的意思是弯曲。从这个意思来说,其实翻译得还是不错的。这个说法来源于知乎某问答。
    binux
        12
    binux  
       2016-09-09 16:56:40 +08:00
    @redhatping 字典上就写得很明确啊

    ②(worker)处理者 chǔlǐzhě
    a baggage handler
    行李搬运工
    a food handler
    从事食品加工的人

    这里就是 处理打开 URL 这个事的「人」。
    shimanooo
        13
    shimanooo  
       2016-09-09 17:36:16 +08:00   ❤️ 1
    就是憨豆儿
    wizardforcel
        14
    wizardforcel  
       2016-09-09 18:27:11 +08:00
    @FrankFang128 handle 是句柄, handler 是后端的处理函数,不是一个东西。


    @sensui7 的确很多现代汉语的词汇都是从日语借的。。
    lcc4376
        15
    lcc4376  
       2016-09-09 18:29:40 +08:00
    even handler
    menc
        16
    menc  
       2016-09-09 19:30:50 +08:00
    @FrankFang128 handle 是句柄, handler 是处理者, handle != handler ,别说些风马牛不相及的话
    ooTwToo
        17
    ooTwToo  
       2016-09-09 19:34:42 +08:00 via iPhone
    @FrankFang128 还有套接字和鲁棒性…
    sablib
        18
    sablib  
       2016-09-09 19:49:19 +08:00
    魂斗罗
    kimown
        19
    kimown  
       2016-09-09 19:55:34 +08:00
    @ooTwToo 对,尤其是这个鲁棒性, robost 的音译,全是在堆中文名词
    soland
        20
    soland  
       2016-09-09 19:57:41 +08:00
    @FrankFang128 叫句柄还不如叫把手。
    billlee
        21
    billlee  
       2016-09-09 19:58:59 +08:00
    handle n. a part of an object designed for holding, moving, or carrying the object easily, 手柄、握把
    v. to deal with, have responsibility for, or be in charge of, 处理、负责、掌管; to operate or control something that could be difficult or dangerous, 操作(复杂或危险的东西)

    所以 handler 是处理者、处理器的意思
    pysama
        22
    pysama  
       2016-09-09 21:49:17 +08:00
    那到底啥是句柄?
    Zhang
        23
    Zhang  
       2016-09-09 21:56:08 +08:00
    @FrankFang128 字段!
    yxwqwgz
        24
    yxwqwgz  
       2016-09-09 21:58:14 +08:00
    就是窗口的学号。
    yxwqwgz
        25
    yxwqwgz  
       2016-09-09 22:03:57 +08:00
    不对,少看一个字。 handle 的原意是处理, handler 可以翻译为处理者。
    可以不用翻译的。很多英文,一翻译味道就不对了。而且写代码的人用的都是英文。
    pysama
        26
    pysama  
       2016-09-09 22:12:53 +08:00
    啥又是套接字呢?

    相关解释:我们通过 ip 和端口来标注网络上的应用程序, 那么不同主机上的两个程序通信时,他们之间如何标识?答案是使用四元组 <IP-A, portA , IP-B, portB> , IP:port 就确定了一个 socket (套接字),它就像一个插口,应用程序插入这个插口就可以相互通信了。

    上面是网络上的答案。看着好像挺简单,仔细一想又迷茫了。回想建立 tcp 连接的主要过程就是向目标 ip 和端口发请求,经历成功的三次握手后,应用层就可以传输数据了。 那 socket 在这个过程的作用是啥?提供一个 ip : port 规则吗?还是我理解的有问题?

    求大神有浅显易懂的解释~~
    tianshilei1992
        27
    tianshilei1992  
       2016-09-09 22:32:49 +08:00   ❤️ 1
    @pysama 我是渣渣,我来尝试给你解释一下哈,如果不正确,请大家平和指正哈。
    Socket 为什么叫套接字?不晓得…很神奇……
    其实它本身的英文解释是“插座,插口”,我们通过四元祖<source ip, source port, destination ip, destination port>来定义了一个“管道”,通过这个“管道”你可以读写数据,这个“管道”可以是 TCP 的一个连接,也可以是 UDP 的 ??…(这个地方不知道应该如何表达和 TCP 连接对应的玩意儿)。通过这个“管道”,我们就可以唯一的和远程主机上面的一个进程通信啦。
    想象我们平时操作一个真正的水管的时候都是在它的两端进行操作的,假如这个水管在墙上给你留个口,让你往里面倒水,那么这个口就可以理解为一个 socket (插口),假如我们需要同时给好几个目的地(指代远程主机上的不同的进程),我们就需要有几个插口,想给水供水就哪个插口倒。
    Socket 封装了底层通信的细节,使得你有这个玩意儿了,你就知道我可以和远程主机通信啦,不需要管下面怎么实现的。就像是你往水管倒水,你不需要管这个水为了达到远端是不是要经过加压呀,还是经过了什么滤芯什么的,你所做的只需要往这里面倒就行了。
    同样,作为接收端,你想要水,就打开这边的插口(可能上面你放了一个水龙头,哈哈)即可,你也不需要管水怎么来的。
    不知道这样的解释怎么样?
    kittygirl0070
        28
    kittygirl0070  
       2016-09-09 22:47:29 +08:00
    把英语学好,啥事儿没有
    pysama
        29
    pysama  
       2016-09-09 23:22:13 +08:00
    @tianshilei1992 多谢
    我就这么理解,它是个插口,是个封装了一些事情的插口,它能帮助传输层干活儿。
    pyufftj
        30
    pyufftj  
       2016-09-10 12:34:11 +08:00
    @FrankFang128 是的。不知道是哪个人翻译的,听起来很高大上的样子,其实和本意差太远了。。学院派就是这样,生怕别人看懂。这样就显示不出来他们的水平了
    yimity
        31
    yimity  
       2016-09-12 08:33:08 +08:00 via iPhone
    就是接盘侠。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2773 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 12:45 · PVG 20:45 · LAX 05:45 · JFK 08:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.