0

我正在尝试制作一个连接到代理的程序,但我有一个小问题,我编写了 socksv4 和 v5 协议,但我怎么知道代理是哪个版本?

我不使用标准 java 代理对象的原因是因为我想使用套接字通道,而且我基本上必须手动完成。

无关代码:

  String getIP = jTextField1.getText();
  String[] splitIP = getIP.split("\\.");
  byte[] wbytes = new byte[9];
  wbytes[0] = (byte) 0x04;
  wbytes[1] = (byte) 0x01;
  byte one = (byte) Integer.parseInt(splitIP[0]);
  byte two = (byte) Integer.parseInt(splitIP[1]);
  byte three = (byte) Integer.parseInt(splitIP[2]);
  byte four = (byte) Integer.parseInt(splitIP[3]);
  checkC = new int[liveCon.length];
  int pSlot = liveCon.length;
  int[] standBy = new int[liveCon.length];
4

1 回答 1

0

我认为通常的方法是尝试使用v5连接,如果服务器拒绝,请使用 v4 重试。

(客户端发送的第一条消息的第一个字节是版本号。)

于 2011-07-24T03:36:38.990 回答