kcp参数 android,Android上KCP协议的使用
有關KCP協議,可以參閱KCP協議。
目前比較成熟完備的解決方案是kcptun。kcptun在kcp協議的基礎止,做了很多優化,包括前向糾錯(FEC),差分服務代碼點(DSCP),加解密,壓縮。本文講述把kcptun移植到Android端的過程。
1.Go環境準備
kcptun本身是個Go項目,而Go項目本身是支持移植到Android或iOS客戶端作為第三方庫使用的。
1. Go語言環境安裝
2.GoMobile工具安裝
GoMobile工具用于編譯和運行Android和iOS應用。
首先安裝:
go get golang.org/x/mobile/cmd/gomobile
成功后:
gomobile init
如果安裝失敗,通常是網絡問題,可以使用國內鏡像:
a. 安裝gopm
go get -u github.com/gpmgo/gopm
b. 用gopm get -g 代替go get
gopm get -g golang.org/x/net
也可以簡單的從github上克隆相應的為庫到gopath目錄下。
2. Go項目編譯
客戶端只是kcptun的client部分。將kcptun下的client文件夾放到gopath的go/src/golang.org/x/mobile/example/目錄下。
開始編譯之前做一些小修改。
修改client下的三個文件,把代碼中的package main改成別的包名,如package kcpclient,否則編譯不過。
修改main.go,把main方法改名為:Run,main方法是啟動kcpclient的唯一入口,改成大寫字母開頭的方法才會暴露出來給Android使用。
在main.go預定義代碼中定義一個配置路徑屬性CONFIGPATH,修改Run方法代碼片段:
if c.String("c") != "" {
err := parseJSONConfig(&config, c.String("c"))
checkError(err)
}else if CONFIGPATH != "" {
err := parseJSONConfig(&config, CONFIGPATH)
checkError(err)
}
這里加入的CONFIGPATH屬性,并且暴露給客戶端,可以在啟動kcp client前通過setCONFIGPATH,傳入配置的json文件路徑,對kcp client進行自定義參數配置。
上面修改完成后,進入到client目錄,執行
gomobile bind -target=android
編譯完成后,得到kcpclient.aar以及kcpclient-sources.jar。
3.移植到Android端使用
把kcpclient.aar和kcpclient-sources.jar加入依賴。
啟動kcp client是個網絡操作,所以要放到子線程進行操作。最簡單的做法是:
new Thread() {
@Override
public void run() {
super.run();
//這里設置自己的kcp client配置,也可不調用,使用默認配置
Kcpclient.setCONFIGPATH("xxxx");
Kcpclient.run();
}
}.start();
總結
以上是生活随笔為你收集整理的kcp参数 android,Android上KCP协议的使用的全部內容,希望文章能夠幫你解決所遇到的問題。