关于SOCK5代理服务器的第二次协商问题?

lu_zi 2003-06-06 04:53:17
对于SOCK5代理服务,在首次协商完成成功后,第二次协商时,服务器会返回一个IP地址和端口号,对于这两个值应该如何处理?是否是如果原来的地址和这个址不同时,要进行对这个地址的重新连接,就是说重新连接到它返回的地址上,请分别说说不同命令(CONNECT,BIND,UDP)情况,感激不尽,痛哭流水!!!
...全文
12 点赞 收藏 9
写回复
9 条回复
xiaohyy 2003年08月29日
>>第一次返回的端口地址是socks5服务器绑定并监听的端口,
>>这个端口用于外部程序的连接,客户端要把这个端口/地址通知给外部程序。

客户端都是通过代理服务器连出去的,怎么通知外部程序?客户端和外部并没有保持连接

返回的地址和端口是没有用的
回复 点赞
xiaohyy 2003年08月29日
呵呵,我说的是CONNECT方式,taolei(实在无聊) 说的是BIND方式,误会误会
回复 点赞
lu_zi 2003年06月09日
多谢,多谢!!!
回复 点赞
taolei 2003年06月08日
要保持这个连接。
RFC1928有socks5的详细说明。
BIND方式用于外部连接内部的情况。
socks5服务器会有两次reply,
第一次返回的端口地址是socks5服务器绑定并监听的端口,
这个端口用于外部程序的连接,客户端要把这个端口/地址通知给外部程序。
当外部程序连接这个端口后,
socks5服务器返回第二个reply,这次返回的端口地址是外部程序连接的端口地址。
然后,这个连接就会和外部程序的连接绑定上,跟CONNECT方式一样了。
回复 点赞
lu_zi 2003年06月07日
那对于 BIND方式,在进行完第一次协商后,是不是要保持这个连接,再向监听代理的另外的一个连接?
如果是这样的话第一个连接有什么用吗,我们应该如何使用这两个连接呢,多谢!!!
回复 点赞
marinee 2003年06月07日
rfc上是这么讲的,不过我测试时发现没有返回IP地址和端口号,然后也没管它就直接send,receive,也没有什么问题。
网上有类似的代码,好象都没考虑这个问题。
回复 点赞
taolei 2003年06月07日
CONNECT 是同一个连接保持的,返回的端口没有用。

BIND返回绑定/监听的端口, 用于支持类似ftp的使用
UDP返回的是绑定的UDP端口,客户端发送UDP数据包要往这个端口发送,服务器负责转发到外部。
回复 点赞
曾经的猎狐 2003年06月07日
up
回复 点赞
happyhuang 2003年06月06日
为什么要第二次协商?第一次协商成功之后就可以用了啊
回复 点赞
发动态
发帖子
网络编程
创建于2007-09-28

7880

社区成员

6.4w+

社区内容

VC/MFC 网络编程
社区公告
暂无公告