一个xmpp协议的解析
<iq id='yhc13a95' type='set'>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
<resource>balcony</resource>
</bind>
</iq>
<message from='[email protected]/balcony'
id='ju2ba41c'
to='[email protected]'
type='chat'
xml:lang='en'>
<body>Art thou not Romeo, and a Montague?</body>
</message>在长连接里,需要分成iq和message两个包,想实现一个xml格式的协议解析,没接触过,不知道如何入手。最好是实现通用的xml解析,如果有难度,那么实现固定的</iq>、</message>等结尾如何实现,或者有没有介绍一下如何访问socket接收缓冲区的原理的文章也行。
<iq id='yhc13a95' type='set'>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
<resource>balcony</resource>
</bind>
</iq>
<message from='[email protected]/balcony'
id='ju2ba41c'
to='[email protected]'
type='chat'
xml:lang='en'>
<body>Art thou not Romeo, and a Montague?</body>
</message>在长连接里,需要分成iq和message两个包,想实现一个xml格式的协议解析,没接触过,不知道如何入手。最好是实现通用的xml解析,如果有难度,那么实现固定的</iq>、</message>等结尾如何实现,或者有没有介绍一下如何访问socket接收缓冲区的原理的文章也行。
解决方案 »
- 序列化类时,类对象中面的Action如何处理?
- 送分啦,程序安装好后,exe所在的目录怎么表示呀,我要在第一次运行的时候写个文件
- 现在小弟需要做一个报表功能,可以导出到excel,可以打印。格式简单的知道用dataset或者gridview导出到excel,但是这种格式不会
- c# 获取一个进程的所有的线程的信息?包括线程的startaddress
- 注意:今天100分,只给“IT超人”妹妹的,其他兄弟姐妹改天报答。。。。。。
- 两天了,路过的帮个忙!!!谢谢了啊!!!关于GridView传值的一个问题!!!!!!!!!!
- C# 调用C++组件问题请教
- 請問高手如何解決http文件下載存儲時的亂碼問題
- 如果你会请别说太简单就不告诉我,好吗?
- ASP先用的ADO是V2.7的,与用.NET升级后,是否还能兼容ASP的数据连接?
- GetWindowPlacement怎么使用的?具体进来看代码
- 后台使用Convert.ToInt32后,把前台传来的值自动转为0了,求解?
添加你的 IP 和 Msg 还可以添加其他什么用户之类的信息
通过json获取某一个key,它的value不就是你要的
如果别人写的,你来发送信息的,那格式就已经被别人定死了
只是之前生成的格式是一个XML,还是字符串,你是吧这个字符串转换成byte[]发送撒
你转换完成之后,获取这个byte[]的长度
新建一个 byte[] resultData = new byte[8 + data.Length];
前8个byte存储你的XML长度,位数不到用“0"补齐
获取时候先获取8位长度的byte得到总长度,再获取这个长度的值
不就你要的XML
还有一种就是每次获取固定长度,遇到结尾是</xml>就表示是一个完整的XML
这是个大道理,我就是不太明白细节,缓冲区是给什么概念,环形的吗?读取以后自动自动指针的?xml的结尾并不固定,那是不是还要循环比较,是要转换为字节在比较吗?比较的时候读取缓冲区是不是就把指针移动了,那是不是还要另外备份一份读取出来的字节?
循环每次得到的值去判断有没</xml> 结束符,有就是一个XML
之后还有值 就是下一个XML了撒