主題:如何向ETR232i一次寫入200多K的數(shù)據(jù)? 共有41267人關注過本帖 |
---|
塵封 |
1樓 |
如何向ETR232i一次寫入200多K的數(shù)據(jù)? Post By:2005-5-16 13:59:00 [只看該作者]
我們用的貴公司的ETR232構建嵌入式終端, 在系統(tǒng)啟動時根據(jù)配置不同,要從服務器上下載不同的執(zhí)行程序。
以前是用FTP實現(xiàn)的, 但是FTP更新失敗率太大, 如有100個終端同時啟動的話,下載成功率只能達到20%左右。所以我想在程序中自己實現(xiàn)。可執(zhí)行程序大約有200多K。 系統(tǒng)啟動時,首先建立與服務器的連接, 然后向服務器發(fā)送一個自定義的數(shù)據(jù)幀, 里面有要下載的文件的文件名。服務器收到請求幀后, 首先返回要下載的文件的大小, 接著一次發(fā)送1024個字節(jié), 一直到文件結束。 客戶端收到響應幀后,取出文件大小開始接收,可是在實際過程中,當服務器端發(fā)送了38次左右后和客戶端的連接就丟失了,而此時的客戶端只接收到20次左右的數(shù)據(jù), 也就是說只有20多K, 引起這種原因的因素有哪些呢? 我寫的收發(fā)程序, 如果同時在計算機上運行時,可以正確的接收到從服務器返回的文件. |
|
單帖管理 | 引用 | 回復 |
塵封 |
2樓 |
Post By:2005-5-16 14:40:00 [只看該作者]
服務器端有時能夠捕獲到異常, 提示
Connection reset by peer. Socket Error #10054 |
|
單帖管理 | 引用 | 回復 |
zhl |
3樓 |
Post By:2005-5-16 15:06:00 [只看該作者]
ETR232i是否用了電子盤DOC?用FTP應該是最好的方案。在調(diào)用FTP_getput(...)函數(shù)時一定要判斷函數(shù)的返回值,只有返回0,才表明文件傳輸成功。
請查收郵件,請將庫文件更新。 |
|
單帖管理 | 引用 | 回復 |
塵封 |
4樓 |
Post By:2005-5-17 9:44:00 [只看該作者]
沒有使用電子盤DOC.
我將庫文件更新再試試. |
|
單帖管理 | 引用 | 回復 |
x10 |
5樓 |
Post By:2005-5-17 15:55:00 [只看該作者]
作為FTP進行遠程程序更新,需要確保下載的程序無誤,才能進行重啟動。ETR232i基本的326K空間恐怕難以裝載多個應用程序,所以還是應當考慮使用DOC2000電子盤,此外DOC2000的寫入速度比一般的FLASH快很多,也有利于避免TCP數(shù)據(jù)傳送的超時問題。
|
|
單帖管理 | 引用 | 回復 |
塵封 |
6樓 |
Post By:2005-5-19 15:12:00 [只看該作者]
我想問下,如果空間不夠的話,會出現(xiàn)什么情況?
|
|
單帖管理 | 引用 | 回復 |
x10 |
7樓 |
Post By:2005-5-19 16:40:00 [只看該作者]
如果空間不夠,寫文件肯定會fail。
|
|
單帖管理 | 引用 | 回復 |
塵封 |
8樓 |
Post By:2005-5-20 14:09:00 [只看該作者]
我用FTP的方式己經(jīng)實現(xiàn)了這個功能, 謝謝你們.
|
|
單帖管理 | 引用 | 回復 |