请问我现在在数据库中查询到一条记录 包括id,name,sex,age,addr。现在想把这些字段打成一个包,然后发送出去。现跪求关于这个打包的程序。
谢谢了。。

解决方案 »

  1.   

    这样你可以先定义一个Buffer,长度能装下这些东西就行。例如:char buffer [1024];然后用sprintf把这些东西装进buffer里面去。例如: sprintf(buffer,"%d,%s,%s,%d,%s",id,name,sex,age,addr);注意,""中的","是分隔符,是为了接收到后容易把数据读出来而设置的,你也可以换成其他的分隔符。然后就简单了。
    你要使用TCP,就用send语句,把这个buffer 发出去就行了例如:FileSend = send(socketSend,buffer,1024,0);用UDP的话,就是:sendto(socket1,buffer,sizeof(buffer),0,(struct sockaddr *)&oncl[k].localip,sizeof oncl[k].localip);(struct sockaddr *)&oncl[k].localip是对方的UDP通信IP地址和端口号的结构体.
      

  2.   

    可参见http://topic.csdn.net/u/20080709/11/3ba620e9-ef3d-45f4-b4c9-32ed110d9aea.html里面的讨论
      

  3.   

    你要二进制的还是文本的ACE里面就用这个模块,叫CDR
    boost也有,叫boost.serilization