如何重組TCP數據包根據TCP標誌值重新組裝的TCP數據包標誌的值意味着這是數據包的最後一部分?取決於標誌
Q
取決於標誌
-2
A
回答
1
你不能簡單地重新組合的TCP數據包,因爲其標誌沒有more bit
或Don't fragment bit
IP數據包是具有這樣的標誌只有一個,所以你只能使用標誌重新組裝IP包:
「不分段」位。當這個位被設置時,IP數據報永遠不會被分割,而如果出現片段需求則丟棄它。第三位表示「更多碎片」位。如果這個位被設置,那麼它表示一個碎片化的IP數據報,其後面有更多的碎片。在IP數據報的最後一個片段的情況下,該位未被設置,表示這是特定IP數據報的最後一個片段。
2
因爲%d
不是double
的格式說明符,所以它適用於int
。您應該使用正確的格式字符串,例如%f
。
5
因爲您使用的是%d
,這是用於十進制整數,而不是%f
或%g
用於雙打。
2
查找printf
format specifiers。 %d
用於整數值。你想要的可能是%f
或%e
或%g
或類似。看看這個例子:
實施例:
#include <stdio.h>
int main() {
double x = 3.141;
printf("%d\n", x);
printf("%e\n", x);
printf("%f\n", x);
printf("%g\n", x);
}
的輸出是:
$ gcc test.c && /a.out
154573528
3.141000e+00
3.141000
3.141
注意printf
固有類型不安全。在上面的例子中,你會發現使用整數格式說明符的輸出與其他的完全不同。這是因爲沒有執行轉換,但字節模式被直接解釋爲另一種類型,因此可能導致無效的存儲器訪問。
免責聲明:請注意,使用printf
然後使用鏈鋸危險性較低。但是,如果你不在乎手握什麼結局,哪一個指向你想砍的木頭,你的里程可能會有所不同。因此,您應該仔細查看所使用功能的文檔。
參考:
2
指定 「%d」 的格式定義的整數NOT雙變量。
使用「%e」或「%g」。
1
可能已經有人說過,但因爲你聲明的數組變量爲雙數據類型,你不能全部使用%d是一個整數數據類型它突然絕版。因此,我會使用%f或%lf來打印它。上述應更好地工作,如果你正在處理雙倍的數據類型
相關問題
- 1. ng-model-options取決於$ dirty標誌嗎?
- 2. Log4js:日誌取決於NODE_ENV
- 3. CMake:取決於構建類型的默認標誌
- 4. 如何過濾CGridView中的數據取決於表標誌
- 5. 製作標誌取決於計數器c#
- 6. 取決於標籤名
- 7. C/C++日誌工具調用取決於日誌級別
- 8. Angular在多個翻譯中替換一個單詞取決於標誌
- 9. 如何使用輸入路徑取決於標誌的Oozie動作
- 10. MapView縮放,取決於座標
- 11. 如何片段標識符取決於
- 12. 動態`named_scope`取決於某些標準
- 13. 取決於div標記值的css
- 14. 使目標取決於執行
- 15. 導航取決於Xcode目標
- 16. JavaFx;標籤中心取決於寬度
- 17. 取決於頁
- 18. 取決於
- 19. 取決於DIV
- 20. 取決於
- 21. 取決於值
- 22. 關於互斥標誌的UI的決定
- 23. Git取消標誌
- 24. 取決於地區的不同日誌屏幕 - MVC3
- 25. 志願的相依性取決於本身
- 26. 如何使用取決於解決方案配置日誌級別產生NLog.config
- 27. 如何設置Makefile目標取決於模式先決條件?
- 28. 取決於不等於
- 29. 取決於條件
- 30. 取決於選擇
如果你想打印浮點數,你需要使用%f。 %d在這裏是錯誤的。 – fuz
到目前爲止,您採取了哪些步驟進行調試?你有沒有讀過'printf'的參考頁?你有沒有在調試器中檢查你的代碼?你有沒有打開所有的編譯器警告? – abelenky