fucktwice
V2EX  ›  问与答

对于系统socket和第三方的socket调用方,为什么要以文件的形势呢? 直接用扩展实现socket不行吗?

  •  
  •   fucktwice · Aug 23, 2013 · 3431 views
    This topic created in 4701 days ago, the information mentioned may be changed or developed.
    php5-fpm.sock 这是一个sockect文件?
    了解socket的建立过程,但是为什么把socket当作一个文件呢?

    对于系统socket和第三方的socket调用方,为什么要以文件的形势呢?
    直接用扩展实现socket不行吗?
    6 replies    1970-01-01 08:00:00 +08:00
    phuslu
        1
    phuslu  
       Aug 23, 2013
    linux 支持 abstract socket, 可以代替 .sock 文件。
    BOYPT
        2
    BOYPT  
       Aug 23, 2013
    “一切皆文件”是Unix哲学之一。

    php5-fpm.sock只是一个符号,并不会有任何数据经过磁盘。这样一个符号是建立 userspace<->kernelspace<->userspace 这样的管道的传统方式,这样的实现有利于在unix系系统里面实现跨平台。
    fucktwice
        3
    fucktwice  
    OP
       Aug 23, 2013
    @BOYPT 那我想获取里面的数据流 怎么办?
    就是 关于socket通信的一些属性 和 数据 怎么办?
    BOYPT
        4
    BOYPT  
       Aug 23, 2013
    http://superuser.com/questions/484671/can-i-monitor-a-local-unix-domain-socket-like-tcpdump

    可以用socat做中转。
    或者作为调试你用tcp socket替代着就好了嘛。(调试PHP用得着用抓包么……
    fucktwice
        5
    fucktwice  
    OP
       Aug 23, 2013
    @BOYPT 监听端口号这个socat工具我以前没注意到,
    应该没问题的。
    不过我还是想知道 用代码怎么实现?
    socket代码或者 icmp 这些代码怎么实现?
    julyclyde
        6
    julyclyde  
       Aug 23, 2013 via iPad   ❤️ 1
    unix domain socket没有icmp

    socket文件不是用来open的,是用来connect的。在unix domain socket体系里,那个文件名是个传输层地址,相当于tcp的端口号
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   968 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 22:29 · PVG 06:29 · LAX 15:29 · JFK 18:29
    ♥ Do have faith in what you're doing.