在使用socket與後台進行通訊時,會碰到一些亂碼的問題。
一般碰到亂碼的時候,需要首先考慮的就是字元編碼格式是否統一了,這時候就可以先嘗試轉碼來解決問題。
近日也同樣碰到了這個問題(後來才知道後台返回的是基於mina的socket)。
後台返回的時候,拿到的是包裝過的資料(應該是個幀格式的),
因此,在android端我們也用基於mina的socket框架來收發資訊。
需要注意的是:
//設定協議封裝解析處理
socketconnector.getfilterchain().addlast("protocol",
new protocolcodecfilter(new framecodecfactory()));
在新建socket的時候也要記得設定協議封裝和解析處理。
public class framecodecfactory implements protocolcodecfactory
@override
public protocoldecoder getdecoder(iosession iosession) throws exception
}
這裡有兩個方法,乙個是輸出時候編碼 frameencoder(),乙個是接收的時候解碼 framedecoder。
需要有對應的編碼解碼,最後才能拿到正確的資料。
Android 網路程式設計 Socket
socket是對tcp ip協議的封裝,socket本身並不是協議,而是乙個針對tcp和udp程式設計的介面 api 通過socket,我們才能使用tcp ip協議。socket的出現只是使得程式設計師更方便地使用tcp ip協議棧而已,是對tcp ip協議的抽象,從而形成了我們知道的一些最基本的函...
Android利用socket通訊
一台pc和兩部手機,手機作為客戶端和伺服器之間以socket方式通訊,pc作為伺服器在客戶端之間 訊息,實現兩個客戶端之間的通訊。一 客戶端實現 指定ip和埠,新建socket物件。這個ip和埠都要和伺服器那邊的socket一樣。socket msocket new socket ip,port 然...
Android網路程式設計socket
參考博文 為了便於操作,我們客戶端和服務端都放在手機上,等於客戶訪問的服務端就是裝置本身的某乙個埠。下面是服務端的 created by administrator on 2018 5 18.10 47 服務端socket public class serversocket private void...