直接上干货*****代码不能拿来就测试,得有sock5服务器的环境!----》sock5环境搭建请看相关系列文章sock5系列之centos6.5 搭建!(一)

package socket.check.ip;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;import org.apache.log4j.net.SyslogAppender;public class Client {//Sock5 代理 请求规范需要传的参数  05 01 00 (都是16进制)private static final byte[] VER = { 0x05, 0x01, 0x00 };//Sock5 代理 请求规范需要传的参数  05 01 00 01(都是16进制)private static final byte[] VERTWO = {0x05, 0x01, 0x00, 0x01};//Sock5 代理 请求规范需要传的参数  IP+Post (都是16进制)private static final byte[] BAIDU = {0x6f, (byte) 0xce, (byte) 0xdf, (byte) 0xac, 0x50};public static void main(String[] args) {  try {  //1.创建客户端Socket,指定服务器地址和端口号  Socket socket=new Socket("172.16.0.204", 1080);//2.获取输出流,用来向服务器发送信息  OutputStream os=socket.getOutputStream();//字节输出流  System.out.println("准备第一次握手!");System.out.println("发送sock5协议要求的参数:"+bytesToHexString(VER,0,VER.length));os.write(VER);  os.flush();//刷新缓存,向服务器端输出信息  //关闭输出流
//              socket.shutdownOutput();  //3.获取输入流,用来读取服务器端的响应信息  InputStream is=socket.getInputStream();byte[] b = new byte[128];int a = is.read(b);System.out.println("返回字节数:"+a);BufferedReader br=new BufferedReader(new InputStreamReader(is));  String result = bytesToHexString(b,0,a);System.out.println(result);System.out.println("准备第二次握手!");os.write(VERTWO);os.write(BAIDU);System.out.print("发送sock5协议要求的参数:"+bytesToHexString(VERTWO,0,VERTWO.length));System.out.println(bytesToHexString(BAIDU,0,BAIDU.length));os.flush();byte[] baidu = new byte[1024];int baidulength = is.read(baidu);System.out.println("返回字节数:"+baidulength);System.out.println(bytesToHexString(baidu,0,baidulength));//4.关闭资源  br.close();  is.close();  os.close();  socket.close();  } catch (IOException ex) {  Logger.getLogger(Client.class.getName()).log(Level.SEVERE, null, ex);  }  }  public static final String bytesToHexString(byte[] bArray, int begin, int end) {  StringBuffer sb = new StringBuffer(bArray.length);  String sTemp;  for (int i = begin; i < end; i++) {  sTemp = Integer.toHexString(0xFF & bArray[i]);  if (sTemp.length() < 2)  sb.append(0);   sb.append(sTemp.toUpperCase());  sb.append(" ");  }  return sb.toString();  }
}

这里就简单的使用了两个管道   OutputStream   InputStream 实现了请求sock5代理服务器的请求(参数)&接收(结果)!

从结果来看,第一次请求返回05 00 是正常的 表示可以访问,并且有权限,如果可以访问但是没权限的话返回的应该是 05 FF  ,第二次请求返回的是否正常楼主也不清楚,求大神指点。
PS:这些请求参数跟返回的值,都是16进制的数值!

sock5系列之模拟tcp请求sock5服务器!(三)相关推荐

  1. socket 请求Web服务器过程

    HTTP协议只是一个应用层协议,它底层是通过TCP进行传输数据的.因此,浏览器访问Web服务器的过程必须先有"连接建立"的发生. 而有人或许会问:众所周知,HTTP协议有两大特性, ...

  2. jmeter测试TCP服务器/模拟发送TCP请求

    jmeter测试TCP服务器,使用TCP采样器模拟发送TCP请求. TCP采样器:打开一个到指定服务器的TCP / IP连接,然后发送指定文本并等待响应. jmeter模拟发送TCP请求的方法: 1. ...

  3. NodeJs本地搭建服务器,模拟接口请求,获取json数据

    最近在学习Node.js,虽然就感觉学了点皮毛,感觉这个语言还不错,并且也会一步步慢慢的学着的,这里实现下NodeJs本地搭建服务器,模拟接口请求,获取json数据. 具体的使用我就不写了,这个博客写 ...

  4. nodejs虚拟服务器,NodeJs本地搭建服务器,模拟接口请求,获取json数据

    引言: 不知道你在项目开发过程中,有没有遇到过有过以下场景: 一般是前端先制作静态页面,同时服务器端创建数据库,搭服务器端架构,写接口: 当接口写完之后,前端或者后端才能嵌套页面. 但是,如果前端页面 ...

  5. 应用请求web服务器的过程详解

    我们在做渗透测试时,需要知道互联网中是如何处理客户端与服务器端之间的请求的.本文转载一篇文章详解介绍了一次web请求过程的处理. 我们要了解一下Internet中一台计算机访问Web服务器的全部过程, ...

  6. tcp ip协议 服务器和客户端区别,网络与TCP/IP协议-总结

    TCP/IP参考模型 层级               数据形式                      主要功能                                 协议(只标注较主要 ...

  7. TCP与Web服务器

    TCP通信与Web服务器 TCP与Web服务器 Python实现套接字编程 实验准备 服务器端程序 客户机端程序 运行程序步骤 测试运行结果 服务器端优化 缺陷 实验准备 服务器优化前程序运行结果 服 ...

  8. Java爬虫(二)-- httpClient模拟Http请求+jsoup页面解析

    博客 学院 下载 GitChat TinyMind 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye 写博客 发Chat 传资源 登录注册 原 Java爬虫(二)-- httpClient ...

  9. 计算机网络套接字编程实验-TCP单进程循环服务器程序与单进程客户端程序(简单回声)

    1.实验系列 ·Linux NAP-Linux网络应用编程系列 2.实验目的 ·理解并掌握在程序运行时从命令行读取数据的C语言编程方法: ·理解并掌握基于命令参数设置并获取IP与Port的C语言编程方 ...

最新文章

  1. Unity3D 中 2D_Toolkit插件下载 和 导入方法
  2. webpack打包HTML配置自动,十三、HtmlWebpackPlugin的使用 ------- 2019-04-25
  3. Tomcat安装之在Mac环境下配置tomcat9
  4. java无法实例化类型_java – 无法实例化泛型中的类型
  5. 数据建模中的大坑判断
  6. MyBatis - MyBatis Generator 生成的example 如何使用 and or 简单混合查询
  7. 手机号、姓名、邮箱等合法性验证方法
  8. virtual box一直正在加载文件_Linux基础导航与文件管理
  9. LeetCode(412)——Fizz Buzz(JavaScript)
  10. 15数码 java_A*算法求解15数码问题
  11. 约束最优化方法 (一) 最优性条件
  12. Maxtocode 2.0 试用版发布
  13. Django默认用户模型类和父类 AbstractUser 介绍
  14. 21种实验室常用仪器对送检样品的要求汇总,请收好!
  15. 大学计算机四级网络工程师考试内容,收藏!计算机四级网络工程师考试内容
  16. 不用梯子——每日领取5块钱的ChatGPT体验券
  17. 用python将图片变为油画_Python也能成为毕加索?我用Python给小姐姐画了幅油画
  18. 在 Linux 上安装 Adobe Flash Player
  19. 【DL】第11 章:文本深度学习
  20. XCP协议和A2L文件–A2L(ASAP2)解析

热门文章

  1. Unity MVC设计模式与UI背包界面制作
  2. 智能音箱回声消除影响因素
  3. fopen无法打开文件
  4. Vue 基础快速入门(二)
  5. vostro3470装win7_戴尔(dell)成就3470台式机装win7系统及bios设置(支持
  6. spring认证考试练习题
  7. 可汗学院创始人:GPT-4 将如何改变教育行业?
  8. MoCO ——Momentum Contrast for Unsupervised Visual Representation Learning
  9. 嵌入式c语言开发闹钟,DIY小设计:智能闹钟的简单软硬件实现-嵌入式系统-与非网...
  10. 智慧小区弱电智能化设计方案(小区对讲系统和停车管理系统)