2013-05-14 77 views
3

我想發送一些數據(ASCII字母和數字),但由於各種因素,我僅限於使用SMS。我的問題,我如何發送最多140個字符的短信?我可以存儲140個字符的最大字符數是多少?

我控制進程的發送和接收端。加密會幫助我嗎?是否有任何壓縮機制可以使用,以便在未壓縮時可以超出SMS限制?

我也不反對發送多條短信並重新組裝它們以形成更大的有效載荷。

想法?

+0

我認爲通常的做法是使用多個消息。有一些*字符串編碼*庫[(像smaz,儘管二進制輸出?)](https://github.com/antirez/smaz),旨在「壓縮」短的英語/拉丁字母語言字符串(不是與普通壓縮混淆)。同樣,[更好的]自定義編碼也許能夠減少數據。 – user2246674

+0

您發送的數據是什麼?如果它可能是任何東西,壓縮不能真正幫助。如果您知道某些數據可能包含的內容,則可以對其進行壓縮。如果您知道某些字符不會被使用,某些字符會比其他字符使用得多,那麼就有可能進行有價值的壓縮。它需要跨消息模式,因爲消息的大小不足以使其適應要發送的特定消息(不同於說明文件加密,您可以用這些信息填充開銷)。 – Servy

+0

[有短信的可靠性評論](http://en.wikipedia.org/wiki/Short_Message_Service#Unreliability)並給出這個,多個消息可能是一個冒險的想法 - 100%交付不保證也不及時交付。 –

回答

1

正如你建議你自己,你可以壓縮你的消息。您可以發送多少數據取決於數據的各種屬性。找出最簡單的方法就是嘗試一下。

如果您的數據不適合140個SMS字符,並且您不能使用多個SMS消息,則可以將數據存儲在某個服務器上,並使用SMS僅發送一個ID你可以訪問服務器。或者您可以嘗試使用具有更大限制的彩信。

+0

沒有* general *壓縮我知道這對於很短的字符串很有用,包括zlib2。像[smaz](https://github.com/antirez/smaz)這樣的算法通常對於非常小的字符串會更好。假設輸出仍然可以接受。 – user2246674

+0

這些不是很小的字符串,它們至少有140個字符長......無論如何,OP應該嘗試一下 - 他可能需要實現一些變化(可能需要預先計算壓縮字典)。 – zmbq

+0

那些是非常小的字符串。 zlib2甚至沒有開始支付,直到大約100個字節(因爲我的可憐的內存告訴我) - 然後通常只是「稍微好一點」(或不得不退回到商店)。沒有必要攻擊我以前的評論。但是,嘗試不同的方法是一個非常好的建議。 – user2246674

相關問題