直接上干货*****代码不能拿来就测试,得有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. 【怎样写代码】向现有类型“添加”方法 -- 扩展方法(三):为枚举类型创建方法
  2. J2EE Java泛型的好处
  3. [笔记].关于Nios II的数据类型的一点想法
  4. python在线课程-《Python程序设计与应用》在线课程使用说明
  5. Android中Context简介
  6. Redis-RDB持久化设置
  7. AcWing 274. 移动服务
  8. 飞鸽传书 宣传单和电话说辞
  9. 「深度解读」为什么连Google也无法阻挡垂直行业SaaS的浪潮
  10. 京东供应链金融科技推出“采购融资”服务 最高100万无抵押融资
  11. 图书管理系统/库存管理系统等计算机毕业论文设计
  12. 修改手机定位 之 Fake Location 软件使用教程
  13. 主持人大赛-即兴主持之新闻稿
  14. IP探测实现 ARP与设备发现
  15. java垃圾处理机制分析
  16. 云主机和物理机有什么区别?
  17. 几张“有趣”的简图带你理解面试题:String、StringBuffer、StringBuilder区别
  18. 电影▍更多的《复仇者联盟4:终局之战》剧透描述了令人心碎的超级英雄死亡...
  19. Python基础-类变量和实例变量
  20. 有营养的废话:人工智能、大数据和高性能计算融合成为趋势丨AI推理服务器,能读懂福尔摩斯?【软件网每日新闻播报│第10-24期】

热门文章

  1. 几步搞定!用Python实现答题卡识别!
  2. 论文笔记31 -- (ReID)【ICCV2021】TransReID: Transformer-based Object Re-Identification
  3. OFD发票文件怎么打开?无广告!
  4. 你学过的每样东西,都会在你一生中的某个时刻派上用场
  5. 腾讯轻量云服务器控制台详细介绍及建站操作图文教程
  6. c语言字号与屏幕自动调整,C操作excel自动换行与自动调整行高问题
  7. 于博士Cadence
  8. 解决SQL Server 2000安装文件挂起
  9. java 猫_猫,狗叫JAVA
  10. 跨境电商一站式数字化管理ERP系统,帮你解决烦恼