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

php 如何用如下形式的报文与远程服务器进行通信

  •  
  •   ssxzcb · 2016-09-23 14:48:56 +08:00 · 3016 次点击
    这是一个创建于 2984 天前的主题,其中的信息可能已经有所发展或是发生改变。

    21 条回复    2016-09-24 15:22:53 +08:00
    gouchaoer
        1
    gouchaoer  
       2016-09-23 14:53:21 +08:00   ❤️ 1
    这是要求双工通信, websocket 吧。。。。
    liuxu
        2
    liuxu  
       2016-09-23 15:39:01 +08:00   ❤️ 1
    base_convert() 函数在任意进制之间转换数字。
    base_convert(number,frombase,tobase)
    参数 描述
    number 必需。原始值。
    frombase 必需。数字原来的进制。
    tobase 必需。要转换的进制。
    liuxu
        3
    liuxu  
       2016-09-23 15:46:13 +08:00   ❤️ 1
    貌似我打错了, php 貌似只能是 http 请求吧,建立在 tcp/ip 上,底层它控制不了
    micookie
        4
    micookie  
       2016-09-23 15:48:51 +08:00   ❤️ 1
    http://www.php.net/manual/zh/function.fsockopen.php

    看下这个 fsockopen ,以前用这个做过 telnet
    Jakesoft
        5
    Jakesoft  
       2016-09-23 15:52:18 +08:00   ❤️ 1
    @liuxu 那说明你还没有把 php 用到极致
    liuxu
        6
    liuxu  
       2016-09-23 15:58:47 +08:00   ❤️ 1
    @Jakesoft

    我想起了,以前用 php 做过 socket 编程。。太久忘记了。。
    millken
        7
    millken  
       2016-09-23 16:01:29 +08:00   ❤️ 1
    substr,pack,unpack
    ssxzcb
        8
    ssxzcb  
    OP
       2016-09-23 16:19:26 +08:00
    @millken 有没有相应的 demo 我参考下呢
    feiyuanqiu
        9
    feiyuanqiu  
       2016-09-23 16:32:24 +08:00   ❤️ 1
    这个报文可以用 pack 函数构建, 用 unpack 解析
    wesley
        10
    wesley  
       2016-09-23 16:37:29 +08:00   ❤️ 1
    socket +字符串函数就行, pack/unpack 都不需要
    feiyuanqiu
        11
    feiyuanqiu  
       2016-09-23 16:52:07 +08:00   ❤️ 1
    看错了...字节看成位了
    npc0der
        12
    npc0der  
       2016-09-23 16:57:57 +08:00   ❤️ 1
    bombless
        13
    bombless  
       2016-09-23 17:00:24 +08:00   ❤️ 1
    pack 和 unpack 还是必要的,方便一些。
    php 建立套接字挺方便的(实际上,都差不多, 233
    cover
        14
    cover  
       2016-09-23 17:06:49 +08:00   ❤️ 1
    23333 ,我觉得写个 java 程序后台跑。。。
    gouchaoer
        15
    gouchaoer  
       2016-09-23 17:16:19 +08:00 via Android   ❤️ 1
    workerman 和 swoole 都内置了 websocket
    zhs227
        16
    zhs227  
       2016-09-23 17:31:22 +08:00   ❤️ 1
    pack 和 unpack 编解码。还需要一个异步 socket 框架,用命令行模式跑。楼上说的是两种常见的
    AbrahamGreyson
        17
    AbrahamGreyson  
       2016-09-23 17:37:18 +08:00   ❤️ 1
    文件里并没有说要要进行双工通信,看起来更像是异步的。
    PHP 发请求直接 CURL 发呀,字节数就是字符数,根本没有任何技术障碍。
    realpg
        18
    realpg  
       2016-09-23 18:56:41 +08:00   ❤️ 1
    socket 扩展, fsocksopen
    wdlth
        19
    wdlth  
       2016-09-23 21:21:58 +08:00   ❤️ 1
    我又想起了 APNS 推送那个蛋疼的数据结构……
    byteli
        20
    byteli  
       2016-09-23 21:24:02 +08:00   ❤️ 1
    就是 socket 编程那一套,可以在 tcp 的基础上自己实现这个协议,如果想使用框架可以考虑 swoole
    dawniii
        21
    dawniii  
       2016-09-24 15:22:53 +08:00   ❤️ 1
    按文档给的协议格式把数据用 pack 打包,然后连接 socket 发送就行了。
    请求 socket 的方法自己写也行,用 workerman 也不错。如果需要接收对方数据的服务端的话。用 workerman 起一个也很方便。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5905 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:00 · PVG 10:00 · LAX 18:00 · JFK 21:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.