提示數據包過大怎麼回事
例如將下面這一個網絡抓取的數據包的十六進制字符串寫進.pcap文件。
BE 03 00 00 40 00 00 00 AC 23 00 00 A4 09 00 00 30 DD 19 1F 41 CB D0 01 6E 00 D6 2E 29 47 09 46 B4 23 3E E7 BC D6 78 EF E9 03 00 10 04 00 00 00 01 00 00 C0 02 06 00 80 7E 01 00 00 28 02 00 00 A1 1E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 01 80 00 00 6E 03 00 0C 00 00 00 0C 00 00 00 62 03 00 00 B0 83 FE A7 2A 5E 88 25 93 02 28 B9 08 00 45 74 03 54 5B 5E 40 00 32 06 E8 12 7B 81 C4 2A C0 A8 01 6B 37 E5 77 7F 66 C1 44 66 E1 01 90 4D 50 18 16 D0 C7 C8 00 00 00 00 03 2C 00 AB 41 30 00 32 00 00 00 01 5B 4C 69 76 65 44 65 66 61 75 6C 74 43 6F 6E 66 69 67 5D 0D 0A 41 64 76 65 72 74 43 6F 75 6E 74 3D 31 30 0D 0A 41 75 74 6F 50 72 65 44 6F 77 6E 50 32 50 53 70 65 65 64 4C 69 6D 69 74 48 74 74 70 3D 35 31 32 30 30 0D 0A 46 72 65 65 48 74 74 70 53 74 61 72 74 54 69 6D 65 3D 33 0D 0A 46 72 65 65 48 74 74 70 53 74 6F 70 54 69 6D 65 3D 31 31 0D 0A 47 4E 45 54 69 6D 65 3D 33 0D 0A 47 4E 53 54 69 6D 65 3D 31 31 0D 0A 4C 69 76 65 46 69 72 73 74 48 74 74 70 42 75 66 66 65 72 54 69 6D 65 3D 33 30 0D 0A 69 45 6E 61 62 6C 65 50 72 65 70 75 73 68 3D 31 0D 0A 69 48 65 61 72 74 42 65 61 74 4D 61 78 46 61 69 6C 54 69 6D 65 73 3D 33 0D 0A 69 48 65 61 72 74 42 65 61 74 54 69 6D 65 4D 73 3D 32 35 30 30 30 0D 0A 69 4C 6F 67 69 6E 52 74 79 4D 61 78 54 69 6D 65 73 3D 35 0D 0A 69 4C 6F 67 69 6E 52 74 79 54 69 6D 65 4D 73 3D 33 30 30 30 0D 0A 69 4D 69 6E 50 65 65 72 43 6F 75 6E 74 3D 32 30 0D 0A 69 50 72 65 70 75 73 68 44 6F 77 6E 6C 6F 61 64 53 70 65 65 64 3D 31 30 32 34 30 30 30 0D 0A 69 50 72 65 70 75 73 68 44 6F 77 6E 6C 6F 61 64 54 69 6D 65 4F 75 74 3D 36 30 30 0D 0A 69 50 72 65 70 75 73 68 4D 6F 75 73 65 4D 6F 76 65 49 6E 74 65 72 76 61 6C 3D 36 30 0D 0A 69 50 72 65 70 75 73 68 51 75 65 72 79 49 6E 74 65 72 76 61 6C 3D 36 30 30 0D 0A 69 50 72 65 70 75 73 68 51 75 65 72 79 55 70 64 61 74 65 49 6E 74 65 72 76 61 6C 3D 34 33 32 30 30 0D 0A 69 50 72 65 70 75 73 68 52 65 74 72 79 54 69 6D 65 73 3D 33 0D 0A 69 50 72 65 70 75 73 68 53 74 6F 72 61 67 65 53 69 7A 65 3D 35 30 30 0D 0A 69 50 75 6E 63 68 52 74 79 4D 61 78 54 69 6D 65 73 3D 32 0D 0A 69 50 75 6E 63 68 52 74 79 54 69 6D 65 4D 73 3D 31 30 30 30 0D 0A 69 53 65 6C 65 63 74 54 69 6D 65 4F 75 74 4D 73 3D 31 30 30 30 0D 0A 69 53 68 61 72 65 50 65 65 72 3D 30 0D 0A 6E 45 6D 65 72 67 65 6E 63 79 54 69 6D 65 3D 31 35 0D 0A 75 41 75 74 6F 50 72 65 44 6F 77 6E 50 32 50 53 70 65 65 64 4C 69 6D 69 74 48 74 74 70 56 49 50 3D 31 30 32 34 30 30 30 30 30 0D 0A 75 4C 69 6D 69 74 54 69 6D 65 45 6E 64 3D 32 34 0D 0A 75 4C 69 6D 69 74 54 69 6D 65 53 74 61 72 74 3D 31 39 0D 0A 75 4D 61 78 4E 65 77 41 64 64 50 65 65 72 3D 33 38 34 0D 0A 75 4D 69 6E 54 69 6D 65 4F 75 74 42 75 66 66 65 72 3D 33 30 30 30 0D 0A 75 50 34 50 55 72 6C 46 72 65 65 48 74 74 70 4F 70 65 6E 3D 30 0D 0A 75 69 52 65 70 6F 72 74 53 6F 75 72 63 65 43 6F 75 6E 74 3D 32 35 36 0D 0A 75 69 53 74 6F 70 50 32 50 54 69 6D 65 3D 31 30 0D 0A 76 6F 64 5F 63 6E 74 3D 31 32 38 0D 0A
如果這些數據完成時pcap文件的十六進制文件,那麼按照給出代碼的回答直接寫入文件是正確的,但是由於這些數據僅僅只是pcap文件下,除去數據頭的十六進制數據,所以如果直接寫入文件還是會產生錯誤,經過不斷地測試,最終放棄按照pcap結構體,將數據賦值後寫入文件,因為總是存在一些大大小小的bug,最後確定還是使用libpcap,詳細:
http://ask.csdn.net/questions/199693