网路类装载器客户端

网路类装载器客户端

 

import java.util.*;
import java.io.*;
import java.net.*;
import java.util.regex.*;

// Client
public class ClassLoaderTest extends ClassLoader
{
 private String IPAddr = null;
 private int port;
 
 public ClassLoaderTest( String ip , int port )
 {
  ip = ip.trim();
  Pattern ptn = Pattern.compile("//d+.//d+.//d+.//d+");   //Regular Expression 
  Matcher mtc = ptn.matcher(ip);
  if( !mtc.matches() || port > 65535 || port <= 0)
  {
   throw new IllegalArgumentException("Argument Error!");
  }
  
  IPAddr = ip;
  this.port = port;
  
 }
 
 protected Class findClass( String Name ) throws ClassNotFoundException
 {
  try
  {
   Socket sock = new Socket( IPAddr , port );
   InputStream sin = sock.getInputStream();
   BufferedInputStream bin = new BufferedInputStream( sin );
   ByteArrayOutputStream baout = new ByteArrayOutputStream();
   
   int b;
   while(  (b=bin.read()) != -1 )
   {
    baout.write(b);
   }
   
   byte[] bts = baout.toByteArray();
   
   bin.close();
   baout.close();
   
   return defineClass( Name , bts , 0 , bts.length );
  }
  catch(Exception e )
  {
   return null;
  }
 }
 
 
 public static void main(String [] args)throws Exception
 {
  ClassLoaderTest ldr = new ClassLoaderTest("162.105.81.165",80);
  Class cls = ldr.loadClass("ClassFilter");
  System.out.println(cls.getName());
  System.out.println(cls.getClassLoader().getClass().getName());
 }
 
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值