XML over TCP
Èç¹ûÒªÍêÕûµÄÖ§³ÖXML over TCP£¬Ö»ÓÐÁ½ÖÖ°ì·¨£º
1£¬¼ÓÒ»¸öheaderÈ¥±êÃ÷Êý¾ÝµÄ³¤¶È
2£¬¼ÓÒ»¸ödelimiterÈ¥±êÃ÷Êý¾ÝµÄ½áÊø
ÕâÁ½ÖÖ·½·¨¶¼²»¹»ÓÅÑÅ¡£ÎÒÃDz»ÐèÒªÒ»¸öͨÓõķ½·¨£¬ÎÒÃÇÖ»ÒªÒ»¸ö×îÊʺÏÎÒÃǵķ½·¨¡£
ͨ³££¬ÎÒÃÇÄܹ»×Ô¶¨ÒåÊý¾ÝµÄ¸ñʽ£¬¶øÇÒÎÒÃÇͨ³£Ò»ÌõÏûÏ¢Ö»ÓÐÒ»¸öroot node£¬ÄÇôÎÒÃÇ¿ÉÒÔÊÔÊÔÏÂÃæµÄº¯Êý£º
//return length of the xml message
//return -1 for invalid data
//return 0 for not fully received
int GetXmlLen(string buf, string rootName)
{
string head = "<" + rootName;
if (buf.Length < head.Length)
{
//not fully recved
return 0;
}
if (!buf.StartsWith(head))
{
//invalid
return -1;
}
int idx = buf.IndexOf('>');
if (idx < 0)
{
//not fully recved
return 0;
}
if (buf[idx-1] == '/')
{
//empty root element
return (idx + 1);
}
string tail = "</" + rootName + ">";
idx = buf.IndexOf(tail);
if (idx < 0)
{
//not fully recved
return 0;
}
return (idx + tail.Length);
}
ÒªÇó£ºXMLÏûÏ¢Ö»ÓÐÒ»¸öroot node£¬rootName²»ÊÇÈκÎ×Ó½ÚµãµÄÃû×Ö£¬¶øÇÒÏûÏ¢ÊÇÒÔ"/>"»òÕß"</rootName>"½áβ¡£
Õâ²¢²»ÊǺܿÁ¿ÌµÄÒªÇ󣬴ó¶àÊý»ùÓÚXMLµÄÐÒéʵ¼ÊÉϾÍÊÇÕâÑùµÄ¡£
Èç¹ûÄãµÄXMLÐÒéÂú×ãÉÏÊöÒªÇó£¬ÄÇôµ±ÄãÔÚTCPÉÏ´«ÊäXMLµÄʱºò£¬¾Í¿ÉÒÔÊÔÊÔÎҵĺ¯Êý¡£
PS£ºÕâ¸öʾÀýº¯ÊýÊÇÓÃC#дµÄ£¬ÓÃÆäËûÓïÑÔÒ²ºÜÈÝÒ×ʵÏÖͬÑùµÄ¹¦ÄÜ¡£
Ïà¹ØÎĵµ£º
дÕâÆªÎÄÕµÄÔÒòÓÐÈçϼ¸µã£º1)C++±ê×¼¿âÖÐûÓвÙ×÷XMLµÄ·½·¨£¬ÓÃC++²Ù×÷XMLÎļþ±ØÐëÊìϤһÖÖº¯Êý¿â£¬LIBXML2ÊÇÆäÖÐÒ»ÖÖºÜÓÅÐãµÄXML¿â£¬¶øÇÒËüͬʱ֧³Ö¶àÖÖ±à³ÌÓïÑÔ£»2)LIBXML2¿âµÄTutorialдµÃ²»Ì«ºÃ£¬ÓÈÆäÊDZàÂëת»»µÄ²¿·Ö£¬²»ÊÊÓÃÓÚÖÐÎıàÂëµÄת»»£»3)ÍøÉϵĴó¶àÊý¹ØÓÚLibxml2µÄ½éÉܽö½öÊÇ·ÒëÁË×Ô´øµÄ×ÊÁÏ£¬Ã»ÓÐÏêϸ½é ......
ÕâÆªÎÄÕ±»×ªÔصĴÎÊý×î¶à£¬Æäʵ´úÂë¼òªµÃÎÒ×Ô¼º¶¼¿´²»ÏÂÈ¥¡£Ö»²»¹ý·¢±íÕâÆªÎÄÕÂʱºÜ¶àÈËÐèÒªÕâ¸ö¹¦ÄÜ¡£
Õ⼸Ììд¸öÊý¾Ý¿â²éѯ·ÖÎöÆ÷£¬ÒªÓõ½XML¼Ç¼Óû§×¢²áµÄÊý¾Ý¿âÁ¬½ÓµØÖ·¡¢¶Ë¿ÚµÈÐÅÏ¢£¬×ʼÏëÓÃjava ......
Ò»£ºSpringÖеļ¸ÖÖÈÝÆ÷¶¼Ö§³ÖʹÓÃxml×°Åäbean£¬°üÀ¨£º
XmlBeanFactory £¬
ClassPathXmlApplicationContext £¬
FileSystemXmlApplicationContext £¬
XmlWebApplicationContext
¼ÓÔØÕâЩÈÝÆ÷µÄÅäÖÃÎļþµÄxmlÓÐһϼ¸ÖÖ³£¼ûµ ......
×÷Õß: J. Andrew Schafer
ÕâÆªÎÄÕ¼ÙÉèÄã¶Ô XML, XSLT, ºÍ C# ÊìϤ
ÏÂÔØÕâÆªÎÄÕµÄÔ´´úÂë: XMLC.exe (76KB)
ÒëÕß˵Ã÷£ºÕâÆªÎÄÕÂÊǺÜÔçÒÔǰ¾Í·¢±íÁË£¬ËüÌṩµÄÔ´´úÂëÊÇ»ùÓÚ VS.net ²âÊ԰棨RTM ºÍ Beta 2£©µÄ¡£
ÕªÒª
C# ÔÊÐí¿ª·¢ÈËÔ±ÔÚÔ´´úÂëÖвåÈëXML×¢ÊÍ£¬ÕâÔÚ¶àÈËÐ×÷¿ª·¢µÄʱºòÏÔµÃÌØ±ðÓÐÓᣠ......