2014-10-07 39 views
0

我正在寫一個簡單的網絡應用程序在elisp中使用make-network-process打開一個監聽套接字。我正在監聽udp(SOCK_DGRAM)數據包,並使用wireshark,我可以在網絡上看到我的數據包長度爲199個字節。然而,emacs中的進程過濾器返回一個只有195字節長的字符串!有沒有我需要設置的緩衝區大小?如何在Emacs Lisp中設置數據報數據包的傳入緩衝區大小?

回答

2

我的水晶球在暗示你認爲是195個字節真的195個字符是被表示爲,因爲DOS風格的CR/LF線末端或UTF-8編碼或電線199個字節類似的東西。

+0

oohh這是一個很好的想法...我會研究這個。 – 2014-10-08 11:13:42

+0

在解析我的udp數據包之前,我使用了'string-as-unibyte',它工作正常!謝謝! – 2014-10-08 14:46:25

+3

不要:'string-as-unibyte'是一個徹頭徹尾的黑客,它永遠不會真的做你想做的事(它會經常意外地做足夠近的事情)。相反,你想要指定你的過程應該使用的編碼系統(例如'二進制'),例如,通過'set-process-coding-system'或'coding-system-for-read'。 – Stefan 2014-10-08 19:12:47

相關問題