我在Linux上运行了这个Perl代码:
my $command = "\x{11}\x{22}\x{33}\x{44}\x{55}\x{66}\x{77}\x{88}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}\x{00}"; # total of 20 bytes to transmit
my $bytesWritten = $device->bulk_write(0x01, $command, 1000);
使用Wireshark,我发现传输的实际应用程序数据是
0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0010 00 00 00 00 00 00 00 00 11 22 33 44
打印$bytesWritten
显示传输了20个字节,但这与Wireshark捕获的不同。
可能是什么问题?
答案 0 :(得分:1)
Perl程序可能正常运行。
我见过wireshark截断USB数据包(另一个参考: http://www.mail-archive.com/tcpdump-workers@lists.tcpdump.org/msg04042.html)。
我不得不使用“usbmon”应用程序来获取完整的捕获: http://people.redhat.com/zaitcev/linux/