中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Proxy-Go 全平臺(tái) SDK v5.3 發(fā)布,新增日志回調(diào)

2018-07-25    來(lái)源:oschina

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

Proxy-Go 全平臺(tái) SDK是proxy使用gombile實(shí)現(xiàn)了一份go代碼編譯為android和ios平臺(tái)下面可以直接調(diào)用的sdk類庫(kù), 另外還為linux和windows提供sdk支持,基于這些類庫(kù),APP開(kāi)發(fā)者可以輕松的開(kāi)發(fā)出各種形式的代理工具。

此次更新:

  • 增加了支持日志輸出回調(diào)的方法:
    StartWithLog(serviceID, serviceArgsStr string, loggerCallback LogCallback)

  • 優(yōu)化了socks_client握手端口判斷,避免了sstap測(cè)試UDP失敗的問(wèn)題..

  • 修復(fù)了HTTP(S)\SPS反向代理無(wú)法正常工作的問(wèn)題.

  • 優(yōu)化了智能判斷,減少不必要的DNS解析.

  • 重構(gòu)了SOCKS和SPS的UDP功能,基于UDP的游戲加速嗖嗖的.

下載地址:

  • Gitee

  • GAYHUB

Proxy SDK 使用說(shuō)明

支持以下平臺(tái):

  • Android,.arr庫(kù)

  • IOS,.framework庫(kù)

  • Windows,.dll庫(kù)

  • Linux,.so庫(kù)

  • MacOS,.dylib庫(kù)

proxy使用gombile實(shí)現(xiàn)了一份go代碼編譯為android和ios平臺(tái)下面可以直接調(diào)用的sdk類庫(kù), 另外還為linux和windows提供sdk支持,基于這些類庫(kù),APP開(kāi)發(fā)者可以輕松的開(kāi)發(fā)出各種形式的代理工具。

下面分平臺(tái)介紹SDK的用法

Android SDK

點(diǎn)擊下載Android-SDK
在Android系統(tǒng)提供的sdk形式是一個(gè)后綴為.aar的類庫(kù)文件,開(kāi)發(fā)的時(shí)候只需要把a(bǔ)rr類庫(kù)文件引入android項(xiàng)目即可.

Android-SDK使用實(shí)例

1.導(dǎo)入包

import snail007.proxy.Porxy

2.啟動(dòng)一個(gè)服務(wù)

String serviceID="http01";//這里serviceID是自定義的唯一標(biāo)識(shí)字符串,保證每個(gè)啟動(dòng)的服務(wù)不一樣即可
String serviceArgs="http -p :8080";
String err=Proxy.start(serviceID,serviceArgs);
if (!err.isEmpty()){
    //啟動(dòng)失敗
    System.out.println("start fail,error:"+err);
}else{
    //啟動(dòng)成功
}

3.停止一個(gè)服務(wù)

String serviceID="http01";
Proxy.stop(serviceID);
//停止完畢

IOS SDK

點(diǎn)擊下載IOS-SDK
在IOS系統(tǒng)提供的sdk形式是一個(gè)后綴為.framework的類庫(kù)文件夾,開(kāi)發(fā)的時(shí)候只需要把類庫(kù)文件引入項(xiàng)目,然后調(diào)用方法即可.

IOS-SDK使用實(shí)例

導(dǎo)入包

#import <Proxy/Proxy.objc.h>

2.啟動(dòng)一個(gè)服務(wù)

-(IBAction)doStart:(id)sender
{
	//這里serviceID是自定義的唯一標(biāo)識(shí)字符串,保證每個(gè)啟動(dòng)的服務(wù)不一樣
	NSString *serviceID = @"http01";
    NSString *serviceArgs = @"http -p :8080";
    NSString *error = ProxyStart(serviceID,serviceArgs);
    
    if (error != nil && error.length > 0)
    {
        NSLog(@"start error %@",error);
    }else{
        NSLog(@"啟動(dòng)成功");
    }
}

3.停止一個(gè)服務(wù)

-(IBAction)doStop:(id)sender
{
    NSString *serviceID = @"http01";
    ProxyStop(serviceID);
    //停止完畢
}

Windows SDK

點(diǎn)擊下載Windows-SDK
在Windows系統(tǒng)提供的sdk形式是一個(gè)后綴為.dll的類庫(kù)文件,開(kāi)發(fā)的時(shí)候只需要把dll類庫(kù)文件加載,然后調(diào)用方法即可.

Windows-SDK使用實(shí)例

C++示例,不需要包含頭文件,只需要加載proxy-sdk.dll即可,ieshims.dll需要和proxy-sdk.dll在一起。
作者:yjbdsky

#include <stdio.h>
#include<stdlib.h>
#include <string.h>
#include<pthread.h>
#include<Windows.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef char *(*GOSTART)(char *s);
typedef char *(*GOSTOP)(char *s);
typedef int(*GOISRUN)(char *s);
HMODULE GODLL = LoadLibrary("proxy-sdk.dll");

char * Start(char * p0,char * p1)
{
	if (GODLL != NULL)
	{
		GOSTART gostart = *(GOSTART)(GetProcAddress(GODLL, "Start"));
		if (gostart != NULL){
			printf("%s:%s\n",p0, p1);
			char *ret = gostart(p0,p1);
			return ret;
		}
	}
	return "Cannot Find dll";
}
char * Stop(char * p)
{
	if (GODLL != NULL)
	{
		GOSTOP gostop = *(GOSTOP)(GetProcAddress(GODLL, "Stop"));
		if (gostop != NULL){
			printf("%s\n", p);
			char *ret = gostop(p);
			return ret;
		}
	}
	return "Cannot Find dll";
}

int main()
{
	//這里p0是自定義的唯一標(biāo)識(shí)字符串,保證每個(gè)啟動(dòng)的服務(wù)不一樣
	char *p0 = "http01";
	char *p1 = "http -t tcp -p :38080";
	printf("This is demo application.\n");
	//啟動(dòng)服務(wù),返回空字符串說(shuō)明啟動(dòng)成功;返回非空字符串說(shuō)明啟動(dòng)失敗,返回的字符串是錯(cuò)誤原因
	printf("start result %s\n", Start(p0,p1));
	//停止服務(wù),沒(méi)有返回值
	Stop(p0);
	return 0;
}


#ifdef __cplusplus
}
#endif

C++示例2,請(qǐng)移步:GoProxyForC

Linux SDK

點(diǎn)擊下載Linux-SDK
在Linux系統(tǒng)提供的sdk形式是一個(gè)后綴為.so的類庫(kù)文件,開(kāi)發(fā)的時(shí)候只需要把so類庫(kù)加載,調(diào)用方法即可.

Linux-SDK使用實(shí)例

Linux下面使用的sdk是so文件即libproxy-sdk.so,下面寫(xiě)一個(gè)簡(jiǎn)單的C程序示例,調(diào)用so庫(kù)里面的方法.

vi test-proxy.c

#include <stdio.h>
#include "libproxy-sdk.h"

int main() {
     printf("This is demo application.\n");
	 //這里p0是自定義的唯一標(biāo)識(shí)字符串,保證每個(gè)啟動(dòng)的服務(wù)不一樣
	 char *p0 = "http01";
     char *p1 = "http -t tcp -p :38080";
     //啟動(dòng)服務(wù),返回空字符串說(shuō)明啟動(dòng)成功;返回非空字符串說(shuō)明啟動(dòng)失敗,返回的字符串是錯(cuò)誤原因
     printf("start result %s\n",Start(p0,p1));
     //停止服務(wù),沒(méi)有返回值
     Stop(p0);
     return 0;
}

編譯test-proxy.c

export LD_LIBRARY_PATH=./ && gcc -o test-proxy test.c libproxy-sdk.so

執(zhí)行

./test-proxy

MacOS SDK

點(diǎn)擊下載MacOS-SDK
在MacOS系統(tǒng)提供的sdk形式是一個(gè)后綴為.dylib的類庫(kù)文件,開(kāi)發(fā)的時(shí)候只需要把so類庫(kù)加載,調(diào)用方法即可.

MacOS-SDK使用實(shí)例

MacOS下面使用的sdk是dylib文件即libproxy-sdk.dylib,下面寫(xiě)一個(gè)簡(jiǎn)單的Obj-C程序示例,調(diào)用dylib庫(kù)里面的方法.

#import "libproxy-sdk.h"
-(IBAction)doStart:(id)sender
{
    char *result =  Start("http01", "http -t tcp -p :38080");
    
    if (result)
    {
        printf("started");
    }else{
        printf("not started");
    }
  
}
-(IBAction)doStop:(id)sender
{
     Stop("http01");

}

關(guān)于服務(wù)

proxy的服務(wù)有11種,分別是:

http  
socks  
sps  
tcp  
udp  
bridge  
server  
client  
tbridge  
tserver  
tclient

服務(wù)啟動(dòng)時(shí),如果存在正在運(yùn)行的相同ID的服務(wù),那么之前的服務(wù)會(huì)被停掉,后面啟動(dòng)的服務(wù)覆蓋之前的服務(wù)。

所以要保證每次啟動(dòng)服務(wù)的時(shí)候,第一個(gè)ID參數(shù)唯一。

上面這些服務(wù)的具體使用方式和具體參數(shù),可以參考proxy手冊(cè)

sdk里面的服務(wù)不支持手冊(cè)里面的:--daemon和--forever參數(shù)

標(biāo)簽: dns dns解析 linux 代碼 開(kāi)發(fā)者

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:Neo4j 3.5.0-alpha05 發(fā)布,高性能圖數(shù)據(jù)庫(kù)

下一篇:Kiwi TCMS 5.0 發(fā)布,全功能測(cè)試用例管理系統(tǒng)