免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3390 | 回复: 5
打印 上一主题 下一主题

求以xml格式socket封包的例子! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-07-06 09:39 |只看该作者 |倒序浏览
socket网络数据传输除了自定义格式,使用xml外还有其他易用,高效的封包格式吗?
各位大虾能不能给个以xml格式socket封包的例子!
谢谢!

论坛徽章:
0
2 [报告]
发表于 2004-07-06 12:10 |只看该作者

求以xml格式socket封包的例子!

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2004-07-06 13:02 |只看该作者

求以xml格式socket封包的例子!

晕 too~~~

论坛徽章:
0
4 [报告]
发表于 2004-07-07 09:25 |只看该作者

求以xml格式socket封包的例子!

备粮,备房,娶老婆 !!!!!◎_@

论坛徽章:
0
5 [报告]
发表于 2004-07-07 16:40 |只看该作者

求以xml格式socket封包的例子!

楼主该是用xml格式通过socket做接口吧。我们以前做过这么一个银行接口。不
过xml库是我们自己开发的。类库里下面的2个函数就是为了解决这个问题的。

pack = xml.SaveToStream(&packlen);
mXml.LoadFromStream(pool);

例子:

  1. int TTWitNet::SendErrPack(int socketid)
  2. {
  3.   char *pack,tmpbuf[10];
  4.   int packlen;
  5.   
  6.   TXml xml;
  7.   TXmlNode *node,*sonnode;
  8.    
  9.         printf("error pack:the responce serial is %d ...\n",socketid);
  10.        
  11.         //下面创建主节点(inesmsg)
  12.   //创建一个组节点
  13.   node=xml.Create_Node(Xml_Node_Type_Group);
  14.   
  15.   //设置名称
  16.   node->;Set_Name("inesmsg");
  17.   //设置属性(作为第一层结点)
  18.   xml.Add_Node(node);

  19.         //inesmsg节点下挂上 msghead 节点
  20.   //创建一个组节点
  21.   //sonnode=xml.Create_Group("msghead");
  22.   //作为第二层结点
  23.   //node->;Add_Node(sonnode);
  24.   
  25.   //取源包头信息
  26.   sonnode=mXml.Get_Node("inesmsg,msghead");
  27.   //加入当前包头
  28.   xml.Add_Node("inesmsg",sonnode);

  29.   //创建一个组节点
  30.   sonnode=xml.Create_Group("msgcontent");
  31.   //作为第二层结点
  32.   node->;Add_Node(sonnode);

  33.         //创建msgcontent信息
  34.   node=xml.Create_Node(Xml_Node_Type_Element);
  35.   node->;Set_Name("actcode1");
  36.   node->;Set_Value(mWitNetPack.ActCode1);
  37.   xml.Add_Node("inesmsg,msgcontent",node);

  38.         node=xml.Create_Node(Xml_Node_Type_Element);
  39.   node->;Set_Name("actcode2");
  40.   node->;Set_Value(mWitNetPack.ActCode2);
  41.   xml.Add_Node("inesmsg,msgcontent",node);

  42.         node=xml.Create_Node(Xml_Node_Type_Element);
  43.   node->;Set_Name("actcode3");
  44.   node->;Set_Value(mWitNetPack.ActCode3);
  45.   xml.Add_Node("inesmsg,msgcontent",node);

  46.         //返回错误代码
  47.         sprintf(tmpbuf,"%02d",mErrFlag);
  48.         tmpbuf[2]=0;
  49.        
  50.         node=xml.Create_Node(Xml_Node_Type_Element);
  51.   node->;Set_Name("retn");
  52.   node->;Set_Value(tmpbuf);
  53.   xml.Add_Node("inesmsg,msgcontent",node);

  54.         //返回错误信息
  55.         node=xml.Create_Node(Xml_Node_Type_Element);
  56.   node->;Set_Name("desc");
  57.   node->;Set_Value(mErrMsg);
  58.   xml.Add_Node("inesmsg,msgcontent",node);

  59.         node = xml.Get_Node("inesmsg,msghead,msgtype");
  60.         if (node==NULL)
  61.         {
  62.                 printf("cant get msgnumber\n");
  63.                 return 0;
  64.         }
  65.         node->;Set_Value("resultlast");

  66.         //保存到文件中
  67.   //xml.SaveToFile("witnet.xml");
  68.        
  69.         pack = xml.SaveToStream(&packlen);
  70.                
  71.   if (socketid!=0)
  72.     send(socketid,pack,packlen,0);
  73.   else
  74.     WriteLog(pack);

  75.         WriteLog(pack);
  76.        
  77.         free(pack);
  78.                
  79.   return 1;
  80. }
复制代码

论坛徽章:
0
6 [报告]
发表于 2004-11-09 11:54 |只看该作者

求以xml格式socket封包的例子!

楼上公司强的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP