请教大家一个msn文件传输的问题

dingsun2 2005-10-13 05:42:43
先谢谢了,问题如下:
我截获了我用msn7.0发出传输文件邀请的数据包,如下:
MSG 6 D 1348\r\n
MIME-Version: 1.0\r\n
Content-Type: application/x-msnmsgrp2p\r\n
P2P-Dest: some_body@hotmail.com\r\n
但是按照相关的协议,它应该是:
MSG 6 D 1348\r\n
MIME-Version: 1.0\r\n
Content-Type: application/x-msnmsgrp2p\r\n
P2P-Dest: some_body@hotmail.com\r\n
\r\n
\000\000\000\000-\037\216#\000\000\000\000\000
\000\000\000\271\004\000\000\000\000\000\000
\262\004\000\000\000\000\000\000.\371\234\020\000\000
\000\000\000\000\000\000\000\000\000\000INVITE MSNMSGR some_body@hotmail.com MSNSLP/1.0\r\n
To: <msnmsgr:some_body @hotmail.com>\r\n
From: <msnmsgr:this_buddy@hotmail.com>\r\n
Via: MSNSLP/1.0/TLP ;branch={7E873D59-824B-5084-3544-90B83C8D3C40}\r\n
CSeq: 0\r\n
Call-ID: {9C468B3E-4BEA-1C6E-9E6D-1BE9455F8147}\r\n
Max-Forwards: 0\r\n
Content-Type: application/x-msnmsgr-sessionreqbody\r\n
Content-Length: 865\r\n
\r\n
EUF-GUID: {5D3E02AB-6190-11D3-BBBB-00C04F795683}\r\n
SessionID: 1189641425\r\n
Context: PgIAAAIAAAAsAQAAAAAAAAAAAAB0AGUAcwB0ADEAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n

请问大家,为啥不一样呢?像我截获那样是没有办法得到文件的相关信息的
...全文
124 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zzg315 2005-10-14
这里"MSG\000"长度是7,(其中 "\" 是字符 '\\')
for(int i=0;i<7;i++)
printf("%c",byte[i]);

回复
dingsun2 2005-10-14
谢谢这位大哥了,在请问一下:
假设数据包内容为"MSG\000",然后用一个byte*指向这段数据即
byte*pByte=(BYTE*)"MSG\000";这个转换之后pByte的内容就成了"MSG",请问一下大哥上面那个解决方法是怎么实现的?
回复
zzg315 2005-10-14
你好,也许我下面的意见对你有点帮助:
我也曾做过一个协议分析的软件,也遇到了这样的问题,其原因很简单:
在你捕获到数据报后,不要简单按字符串显示,因为字符串显示时,一旦遇到'\0'就会停止,所以你显示的数据比理论上的少。
解决方法: 根据数据报的长度,一个一个地输出字符,遇到'\0'是,可以用'.'等代替显示。
回复
dingsun2 2005-10-14
自己先顶一下
回复
dingsun2 2005-10-14
呵呵,大哥理解错的意思了,我是说"MSG\000"赋值给pByte强制转换的时候
内容就已经变了,pByte指向的内容是"MSG";不是"MSG\000",这个地方有问题
回复
发帖
网络编程
创建于2007-09-28

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2005-10-13 05:42
社区公告
暂无公告