将所有示例移动到examples;修订代码,文档

This commit is contained in:
hahahrfool
2022-03-23 09:25:13 +08:00
parent c8f639a81d
commit 0a69fbacbf
12 changed files with 18 additions and 16 deletions

View File

@@ -83,7 +83,7 @@ tls lazy encrypt 特性 运行时可以用 -lazy 参数打开(服务端客户
该特性不完全稳定,可能会导致一些网页访问有时出现异常,有时出现bad mac alert;刷新页面可以解决
不是速度慢,是因为 目前的tls过滤方式有点问题, 对close_alert等情况没处理好。而且使用不同的浏览器现象也会不同似乎对safari支持好一些 chrome就差一些
不是速度慢,是因为 目前的tls过滤方式有点问题, 对close_alert等情况没处理好。而且使用不同的浏览器现象也会不同
在我的最新代码里采用了独特的技术已经规避了大部分不稳定性。总之比较适合看视频毕竟双向splice不是白给的
@@ -145,12 +145,12 @@ git clone https://github.com/hahahrfool/v2ray_simple
cd v2ray_simple && go build
#如果使用极简模式则复制vs.json文件
cp vs.client.json client.json
cp vs.server.json server.json
cp examples/vs.client.json client.json
cp examples/vs.server.json server.json
#如果使用 标准toml格式则复制toml文件我们提供了多种配置示例你只需复制一种想要的即可
cp vlesss.client.toml client.toml
cp vlesss.server.toml server.toml
cp examples/vlesss.client.toml client.toml
cp examples/vlesss.server.toml server.toml
```
详细优化的编译参数请参考Makefile文件
@@ -225,7 +225,7 @@ verysimple -c server.toml
标准模式使用toml格式类似windows的ini对新手友好不容易写错。推荐直接使用标准模式。
的 vlesss.client.toml, vlesss.server.toml , z_multi.client.toml 等文件中 提供了大量解释性的注释, 对新手很友好
本作的 examples文件夹中的 vlesss.client.toml, vlesss.server.toml , z_multi.client.toml 等文件中 提供了大量解释性的注释, 对新手很友好
### 兼容模式
@@ -317,7 +317,7 @@ MIT协议即你用的时候也要附带一个MIT文件然后我不承担
verysimple 是一个很简单的项目覆盖协议也没有v2ray全比如socks协议只能用于客户端入口没法用于出口。
本项目的目的类似于一种 proof of concept. 方便理解,也因为极简所以比官方v2ray快一些
本项目的目的类似于一种 proof of concept. 方便理解也因为极简所以比官方v2ray快。
也因为是poc所以我有时会尝试向 verysimple 中添加一些我设计的新功能。目前正在计划的有

View File

@@ -38,15 +38,11 @@ func CanSplice(r interface{}) bool {
//会接连尝试 splice、循环readv 以及 原始Copy方法
func TryCopy(writeConn io.Writer, readConn io.Reader) (allnum int64, err error) {
var mr utils.MultiReader
var multiWriter utils.MultiWriter
var buffers net.Buffers
var rawConn syscall.RawConn
var isWriteConn_a_MultiWriter bool
var multiWriter utils.MultiWriter
isWriteConnBasic := IsBasicConn(writeConn)
if !isWriteConnBasic {
multiWriter, isWriteConn_a_MultiWriter = writeConn.(utils.MultiWriter)
}
if utils.CanLogDebug() {
log.Println("TryCopy", reflect.TypeOf(readConn), "->", reflect.TypeOf(writeConn))
@@ -70,10 +66,16 @@ func TryCopy(writeConn io.Writer, readConn io.Reader) (allnum int64, err error)
goto classic
}
mr = utils.GetReadVReader()
if utils.CanLogDebug() {
log.Println("copying with readv")
}
if !IsBasicConn(writeConn) {
multiWriter, isWriteConn_a_MultiWriter = writeConn.(utils.MultiWriter)
}
mr = utils.GetReadVReader()
defer mr.Clear()
defer utils.ReleaseBuffers(buffers, readv_buffer_allocLen)
@@ -85,7 +87,7 @@ func TryCopy(writeConn io.Writer, readConn io.Reader) (allnum int64, err error)
var num int64
var err2 error
//如vless协议肯定走这里因为 vless.UserConn 实现了 utils.MultiWriter
// vless.UserConn 和 ws.Conn 实现了 utils.MultiWriter
if isWriteConn_a_MultiWriter {
num, err2 = multiWriter.WriteBuffers(buffers)

View File

@@ -92,7 +92,7 @@ verysimple 版本 v1.0.3
在macos上verysimple的上传速度是很强大的。不过在下载速度上略输 xray。
不过我还没实现readv等我加了readv后有可能实现反超
注意这个测速是在v1.0.3时测的,当时我还没实现readv。最新代码已经实现了readv理论上macos上也能超过xray有机会测一测
总之我的双向splice功能在mac上发挥不出作用因为mac不是linux没splice函数。。。