在socket报文中协议信息一般是用数据结构定义的,
如:
struct SocMsg
{
    struct CtlMsg  CtlMsg; // 包控制信息
    char datat; // 传送内容,从data                  
};包控制信息结构说明如下: struct CtlMsg
{
    
    unsigned char pkt; 
    char api_id;       // 应用 标识,
    unsigned long len;                 // 包的总长度 };PHP中怎样向C语言编写的服务器端发送这种结构体呢? 我的方法是:PHP 采用socket方式与服务器通讯,定义一个类结构,声明对象给协议赋值,然后给该对象序列化serialize,再用socket_write()向服务器端发送。这样子发送协议包信息正确吗?我用这种方法一直都不成功,服务器端接受了,但没有返回任何信息,是不是我发送的协议包信息不正确了?还我这种形式发送协议错了。
1.应该以怎样的形式组织发送这种协议结构体呢??
2.不同语言之间的对象传递会不会有错?PHP写的对象声明与C语言的数据结构有差别,服务器端C语言怎样能复原对象,因为服务器端没有PHP 客户端声明的类.

解决方案 »

  1.   

    肯对不对了,PHP中没有结构体,C中没有对象
    传字符串就行了,在C中再解析字符串
      

  2.   

    考虑用json数据格式交互吧.比较通用
    http://www.json.org/,看页面下端.
      

  3.   

    用不了json数据格式交互了,因为接口已经是公司在用的系统了,用C,socket技术的,不方便更换其它的了。到底怎样用PHP 和C 进行socket 通信呢?