第四天:第一个基于NetBIOS over TCP/IP报文格式的Name Query程序发送

今天是3月17日,由于前两天连续跟美国那边调试bug,人也有点体力透支。这里事情也耽误了,主要是晚上回来啥也不想干。坐在电脑前或者发呆,或者看几集无聊的肥皂剧就睡觉了。这两天知道项目的发布时间延后,所以今天有时间把这个程序调试一下。


开始的时候,我发现发送的报文格式不能被Wireshark正确的解析。调试后加上了一些具体的分隔符'/0',使得Level2Encoding后的报文内容已经跟标准答案一样了,可是最后发送报文的格式还是不对。从wireshark看,是一部分内容被截断了,导致了问题的出现。

 

最后,发现问题就出在发送内容时,数据内容长短的指定上。我用strlen来进行内存区长度的计算。另外,我用strcpy来进行内存区拷贝也是造成一开始报文内容不正确的原因。由于strcpy拷贝字符串时,是以'/0'作为结束字符的。所以如果在拷贝报文中含有0x00这样的字节,那么需要拷贝的内容就会被截断。而这样的情况,在报文成包的过程中会大量出现。所以,正确的方法应该是,使用memcpy之类的函数,另外,strlen这样的函数也不能用来计算内存区长度的。


最后,第一个报文终于正确的被wireshark捕获出来。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值