發現搭車到到一半時就發生過長時間才收到server的回應
最後一筆有效紀錄(經web server過濾後所顯示)的地圖標點
都來沒走一半呢...
回到研究室看看debug訊息~
怪哉~ 再看console
不知道什麼原因造成多筆記錄在同一筆傳送
socket封包支援到1024byte,一旦超過,傳送的data stream 就會被截斷在下一個封包繼續傳送
如果網路狀況不擁擠(小於1024byte),那麼頂多只會loss掉幾筆資料..
但如果遇到split(,),剛好data資料開頭剛好是"," 程式裡頭判斷所欲存之值為空..就會發生錯誤(格式不對)
看看資料庫就知道...多糟了><
看樣子,要避開這種情況目前想到只有
- 修改每次傳送封包格式的大小,能整除1024(目前一筆資料大小為76byte以下),這樣就能確保所存資料格式正確
但server程式部分要限制每個欄位的資料大小,之後如果PDA要新增傳送資料,要再修改 重算能整除值...而對定位而言,更會遺失至多12筆資料(1024/76=13.47) - server程式先行判斷所收到資料筆數(依封包大小),再複雜變數儲存判斷,但好像遇到封包過大,還是有stream被截的問題...
- 搜尋stream buffer相關.. 迫使程式接收一定是一筆一筆進來分析.
沒有留言:
張貼留言
try comments