Closed RainUUU closed 5 years ago
只有在socks5握手的时候才判断buffer长度是否足够,握手完毕后就直接传输了,不会再判断长度。 握手的时候buffer肯定是足够的,不足的话说明是错误的数据,关闭是没问题的
再请教一下,“只有在socks5握手的时候才判断buffer长度是否足够” ,这个依据是因为握手时传输的buffer不大的原因吗? 握手阶段的消息也是通过TCP传输的吧?
可能是我没表达清楚,我说的是握手阶段,例如请求建立目标代理的消息
VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT |
---|---|---|---|---|---|
1 | 1 | 0x00 | 1 | 动态 | 2 |
对应的代码是parse_socket5_header()方法,但是该方法中未获取到指定数据流大小的时候选择close connection
对,握手的时候buffer不大。
好的,了解了。谢谢
该项目解析socks5部分协议是否有改进空间? socks5服务端使用TCP协议监听,在onMessage中监听回调消息,在碰到数据未接收完整的情况下都选择close connection。 例如:parse_socket5_header() if(strlen($buffer) < 10) { echo bin2hex($buffer)."\n"; echo "buffer too short\n"; return false; } 是我考虑多了还是确实有改进空间?