Proxy-Go 全平台 SDK v6.0 同步发布 , 新增众多新特性

栏目: 软件资讯 · 发布时间: 6年前

内容简介:Proxy-Go全平台SDK是proxy使用gombile实现了一份go代码编译为android和ios平台下面可以直接调用的sdk类库, 另外还为linux和windows提供sdk支持,基于这些类库,APP开发者可以轻松的开发出各种形式的代理工具。 此次...

Proxy-Go全平台SDK是proxy使用gombile实现了一份 go 代码编译为android和ios平台下面可以直接调用的sdk类库, 另外还为 linux 和windows提供sdk支持,基于这些类库,APP开发者可以轻松的开发出各种形式的代理工具。

此次更新:

  • 优化连接HTTP(s)上级代理的CONNECT指令,附带更多的信息.

  • 重构了内网穿透的UDP功能,性能大幅度提升,可以愉快的与异地基友玩依赖UDP的局域网游戏了.

  • 重构了UDP端口映射,性能大幅度提升.

  • HTTP(S)\SOCKS5\SPS代理支持上级负载均衡,可以同时指定多个上级.

  • SPS支持HTTP(S)\SOCKS5\SS协议相互转换.

  • HTTP(S)\SOCKS5\SPS代理支持限速.

  • HTTP(S)\SOCKS5代理支持指定出口IP.

  • SOCKS5代理支持级联认证.

  • 修复了tclient可能意外退出的bug.

  • 优化了错误捕获,防止意外crash.

  • 优化了停止服务,释放内存.

下载地址:

Proxy SDK 使用说明

支持以下平台:

  • Android,.arr库

  • IOS,.framework库

  • Windows,.dll库

  • Linux,.so库

  • MacOS,.dylib库

proxy使用gombile实现了一份go代码编译为android和ios平台下面可以直接调用的sdk类库, 另外还为linux和windows提供sdk支持,基于这些类库,APP开发者可以轻松的开发出各种形式的代理工具。

下面分平台介绍SDK的用法

Android SDK

点击下载Android-SDK
在Android系统提供的sdk形式是一个后缀为.aar的类库文件,开发的时候只需要把arr类库文件引入android项目即可.

Android-SDK使用实例

1.导入包

import snail007.proxy.Porxy

2.启动一个服务

String serviceID="http01";//这里serviceID是自定义的唯一标识字符串,保证每个启动的服务不一样即可
String serviceArgs="http -p :8080";
String err=Proxy.start(serviceID,serviceArgs);
if (!err.isEmpty()){
    //启动失败
    System.out.println("start fail,error:"+err);
}else{
    //启动成功
}

3.停止一个服务

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

IOS SDK

点击下载IOS-SDK
在IOS系统提供的sdk形式是一个后缀为.framework的类库文件夹,开发的时候只需要把类库文件引入项目,然后调用方法即可.

IOS-SDK使用实例

导入包

#import <Proxy/Proxy.objc.h>

2.启动一个服务

-(IBAction)doStart:(id)sender
{
	//这里serviceID是自定义的唯一标识字符串,保证每个启动的服务不一样
	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(@"启动成功");
    }
}

3.停止一个服务

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

Windows SDK

点击下载Windows-SDK
在Windows系统提供的sdk形式是一个后缀为.dll的类库文件,开发的时候只需要把dll类库文件加载,然后调用方法即可.

Windows-SDK使用实例

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是自定义的唯一标识字符串,保证每个启动的服务不一样
	char *p0 = "http01";
	char *p1 = "http -t tcp -p :38080";
	printf("This is demo application.\n");
	//启动服务,返回空字符串说明启动成功;返回非空字符串说明启动失败,返回的字符串是错误原因
	printf("start result %s\n", Start(p0,p1));
	//停止服务,没有返回值
	Stop(p0);
	return 0;
}


#ifdef __cplusplus
}
#endif

C++示例2,请移步:GoProxyForC

Linux SDK

点击下载Linux-SDK
在Linux系统提供的sdk形式是一个后缀为.so的类库文件,开发的时候只需要把so类库加载,调用方法即可.

Linux-SDK使用实例

Linux下面使用的sdk是so文件即libproxy-sdk.so,下面写一个简单的C程序示例,调用so库里面的方法.

vi test-proxy.c

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

int main() {
     printf("This is demo application.\n");
	 //这里p0是自定义的唯一标识字符串,保证每个启动的服务不一样
	 char *p0 = "http01";
     char *p1 = "http -t tcp -p :38080";
     //启动服务,返回空字符串说明启动成功;返回非空字符串说明启动失败,返回的字符串是错误原因
     printf("start result %s\n",Start(p0,p1));
     //停止服务,没有返回值
     Stop(p0);
     return 0;
}

编译test-proxy.c

export LD_LIBRARY_PATH=./ && gcc -o test-proxy test-骗人偶像有.c libproxy-sdk.so

执行

./test-proxy

MacOS SDK

点击下载MacOS-SDK
在MacOS系统提供的sdk形式是一个后缀为.dylib的类库文件,开发的时候只需要把so类库加载,调用方法即可.

MacOS-SDK使用实例

MacOS下面使用的sdk是dylib文件即libproxy-sdk.dylib,下面写一个简单的Obj-C程序示例,调用dylib库里面的方法.

#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");

}

关于服务

proxy的服务有11种,分别是:

http  
socks  
sps  
tcp  
udp  
bridge  
server  
client  
tbridge  
tserver  
tclient

服务启动时,如果存在正在运行的相同ID的服务,那么之前的服务会被停掉,后面启动的服务覆盖之前的服务。

所以要保证每次启动服务的时候,第一个ID参数唯一。

上面这些服务的具体使用方式和具体参数,可以参考proxy手册

sdk里面的服务不支持手册里面的:--daemon和--forever参数


【声明】文章转载自:开源中国社区 [http://www.oschina.net]


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

XMPP

XMPP

Peter Saint-Andre、Kevin Smith、Remko TronCon / O'Reilly Media / 2009-5-4 / USD 39.99

This practical book provides everything you need to know about the Extensible Messaging and Presence Protocol (XMPP). This open technology for real-time communication is used in many diverse applicati......一起来看看 《XMPP》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具