通过socket传递消息,服务器端用c++,客户端用php,服务器通过字符发回来消息发,php端把发过来的字符转换成相应的 short int等类型显示。

解决方案 »

  1.   

    比如一个int  返回来的时候是chr(0)chr(0)chr(0)chr(20),在php中怎么直接转化为int
      

  2.   

    $s = 'chr(0)chr(0)chr(0)chr(20)';
    preg_match_all('/\d+/', $s, $r);$v = '';
    foreach($r[0] as $c) $v .= chr($c);echo current(unpack('V', $v));//335544320 低位在前
    echo current(unpack('N', $v));//20 高位在前完全取决于双方的约定
      

  3.   

    服务器那边 c++ 回过来的消息是一个一个字符 有short int __int64 等,php里面有没有什么函数或方法可以直接把类似于 chr(0)chr(0)chr(0)chr(20)转化为int    chr(0)chr(0)chr(0)chr(0)chr(0)chr(0)chr(0)chr(20)转化为 __int64  并显示出来
      

  4.   

    再说一遍,你必须给出对方发回来的真实字符串!
    如果是二进制串的话,还需经 base64_encode 编码后贴出(不然会丢失信息)
    只有这样人家才能帮你