經驗不足導致了N多問題~特此總結下
1、首先確認雙方建立長連接OR短連接,這問題由于雙方缺乏溝通頭痛了好久。對方其實是短連接,而自己用長連接方式發送導致消息漏發。
2、其次確認每條消息開始結束符,雙方互相確認,以此為依據進行分隔消息進行處理。使用了(char)11和(char)28作為每條消息的開始結束符,對方是0x0b和0x1c,其實就是(char)11和(char)28。
3、發送緊急數據判斷是否和對方處于連接狀態也就是網絡上流傳的心跳數據每次發送消息前即java這邊socket.sendUrgentData(0)來判斷。使用socket.isClosed()和socket.isConnected();判斷是否連接不起作用!這個只能判斷之前的連接是否還處于連接狀態。
4、編碼問題對方使用UTF-8 java這邊是GBK,使用InputStreamWriter來進行輸出編碼設置。
posted on 2010-04-02 13:26
朔望魔刃 閱讀(1350)
評論(1) 編輯 收藏