package com.zy.common; 
 | 
  
 | 
import HslCommunication.Core.Net.NetHandle; 
 | 
import HslCommunication.Core.Transfer.DataFormat; 
 | 
import HslCommunication.Core.Types.ActionOperateExThree; 
 | 
import HslCommunication.Core.Types.ActionOperateExTwo; 
 | 
import HslCommunication.Core.Types.OperateResult; 
 | 
import HslCommunication.Core.Types.OperateResultExOne; 
 | 
import HslCommunication.Enthernet.ComplexNet.NetComplexClient; 
 | 
import HslCommunication.Enthernet.PushNet.NetPushClient; 
 | 
import HslCommunication.Enthernet.SimplifyNet.NetSimplifyClient; 
 | 
import HslCommunication.ModBus.ModbusTcpNet; 
 | 
import HslCommunication.Profinet.Melsec.MelsecA1ENet; 
 | 
import HslCommunication.Profinet.Melsec.MelsecMcAsciiNet; 
 | 
import HslCommunication.Profinet.Melsec.MelsecMcNet; 
 | 
import HslCommunication.Profinet.Siemens.SiemensPLCS; 
 | 
import HslCommunication.Profinet.Siemens.SiemensS7Net; 
 | 
  
 | 
import java.util.Arrays; 
 | 
  
 | 
public class Main { 
 | 
  
 | 
//    public static void main(String[] args) throws InterruptedException { 
 | 
//        SiemesTest(); 
 | 
//        try { 
 | 
//            //Constructor[] aa = Integer.class.getDeclaredConstructors(); 
 | 
//            //int i = (Integer) (aa[1].newInstance("1")); 
 | 
//            //System.out.println(Utilities.bytes2HexString( Utilities.getBytes(String.format("%04x",100),"ASCII"))); 
 | 
//            //System.out.println(i); 
 | 
// 
 | 
//            //System.out.println(Arrays.toString("123".split("\\." ))); 
 | 
//            //ModbusTcpTets(); 
 | 
//            //MelsecMcNet melsec_net = new MelsecMcNet("192.168.8.12", 6001); 
 | 
//            //System.out.println(melsec_net.ReadInt16("D100").Content); 
 | 
// 
 | 
//            SiemensS7Net siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200,"192.168.8.12"); 
 | 
//            OperateResult write = siemensS7Net.Write("M200",(short)200); 
 | 
// 
 | 
//            if(!write.IsSuccess){ 
 | 
//                System.out.println("Write failed:"+write.Message); 
 | 
//            } 
 | 
// 
 | 
//            OperateResultExOne<Short> read = siemensS7Net.ReadInt16("M200"); 
 | 
//            if(read.IsSuccess){ 
 | 
//                System.out.println("Value:"+read.Content.toString()); 
 | 
//            } 
 | 
//            else { 
 | 
//                System.out.println("Read failed:"+read.Message); 
 | 
//            } 
 | 
//        } 
 | 
//        catch (Exception ex){ 
 | 
//            System.out.println(ex.getMessage()); 
 | 
//        } 
 | 
//        Thread.sleep(1000); 
 | 
//    } 
 | 
  
 | 
  
 | 
    public static void main(String[] args) { 
 | 
        SiemensS7Net siemens_net = new SiemensS7Net(SiemensPLCS.S300,"192.168.6.1"); 
 | 
        siemens_net.setSlot((byte) 2); 
 | 
        siemens_net.setRack((byte) 0); 
 | 
        OperateResult connect = siemens_net.ConnectServer(); 
 | 
        if(connect.IsSuccess){ 
 | 
            System.out.println("connect success!"); 
 | 
        } 
 | 
        else { 
 | 
            System.out.println("failed:"+connect.Message); 
 | 
        } 
 | 
        siemens_net.ConnectClose(); 
 | 
  
 | 
        short[] array = new short[] {9999,20,31,40,50}; 
 | 
        OperateResult db100 = siemens_net.Write("DB8.18", array); 
 | 
        if (db100.IsSuccess) { 
 | 
            System.out.println("写入成功"); 
 | 
        } else { 
 | 
            System.out.println("写入失败"); 
 | 
        } 
 | 
//        OperateResultExOne<Short> shortOperateResultExOne = siemens_net.ReadInt16("DB100.2"); 
 | 
//        System.out.println(shortOperateResultExOne.Content); 
 | 
  
 | 
        OperateResultExOne<byte[]> read = siemens_net.Read("DB8.18", (short) 10); 
 | 
        if (read.IsSuccess) { 
 | 
//            for (int i = 0; i<10; i=i+2) { 
 | 
//                System.out.println(siemens_net.getByteTransform().TransInt16(read.Content, i)); 
 | 
//            } 
 | 
            System.out.println(siemens_net.getByteTransform().TransInt16(read.Content, 0)); 
 | 
            System.out.println(siemens_net.getByteTransform().TransInt16(read.Content, 2)); 
 | 
            System.out.println(siemens_net.getByteTransform().TransInt16(read.Content, 4)); 
 | 
            System.out.println(siemens_net.getByteTransform().TransInt16(read.Content, 6)); 
 | 
            System.out.println(siemens_net.getByteTransform().TransInt16(read.Content, 8)); 
 | 
        } 
 | 
  
 | 
//        // 上面是初始化 
 | 
//        System.out.println(siemens_net.ReadByte("M100").Content); 
 | 
// 
 | 
//        byte m100_byte = siemens_net.ReadByte("M100").Content; 
 | 
//        short m100_short = siemens_net.ReadInt16("M100").Content; 
 | 
//        int m100_int = siemens_net.ReadInt32("M100").Content; 
 | 
//        long m100_long = siemens_net.ReadInt64("M100").Content; 
 | 
//        float m100_float = siemens_net.ReadFloat("M100").Content; 
 | 
//        double m100_double = siemens_net.ReadDouble("M100").Content; 
 | 
//        String m100_string = siemens_net.ReadString("M100",(short) 10).Content; 
 | 
// 
 | 
//        siemens_net.Write("M100",(byte) 123); 
 | 
//        siemens_net.Write("M100",(short) 123); 
 | 
//        siemens_net.Write("M100",(int) 123); 
 | 
//        siemens_net.Write("M100",(long) 123); 
 | 
//        siemens_net.Write("M100", 123.456f); 
 | 
//        siemens_net.Write("M100", 123.456d); 
 | 
//        siemens_net.Write("M100","1234567890"); 
 | 
// 
 | 
//        OperateResultExOne<byte[]> read = siemens_net.Read( "M100", (short) 10 ); 
 | 
//        { 
 | 
//            if(read.IsSuccess) 
 | 
//            { 
 | 
//                byte m100 = read.Content[0]; 
 | 
//                byte m101 = read.Content[1]; 
 | 
//                byte m102 = read.Content[2]; 
 | 
//                byte m103 = read.Content[3]; 
 | 
//                byte m104 = read.Content[4]; 
 | 
//                byte m105 = read.Content[5]; 
 | 
//                byte m106 = read.Content[6]; 
 | 
//                byte m107 = read.Content[7]; 
 | 
//                byte m108 = read.Content[8]; 
 | 
//                byte m109 = read.Content[9]; 
 | 
//            } 
 | 
//            else 
 | 
//            { 
 | 
//                // 发生了异常 
 | 
//            } 
 | 
//        } 
 | 
  
 | 
  
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 简单网络客户端 
 | 
     */ 
 | 
    public static void NetSimplifyClientTest() { 
 | 
        NetSimplifyClient client = new NetSimplifyClient("127.0.0.1", 12345); 
 | 
        OperateResultExOne<String> read = client.ReadFromServer(new NetHandle(2), "测试数据"); 
 | 
        if (read.IsSuccess) { 
 | 
            System.out.println(read.Content); 
 | 
        } else { 
 | 
            System.out.println("读取失败:" + read.Message); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 三菱   A 
 | 
     */ 
 | 
    private static void MelsecA1ETest() { 
 | 
        MelsecA1ENet melsec_net = new MelsecA1ENet("192.168.0.100", 5000); 
 | 
        melsec_net.SetPersistentConnection(); 
 | 
  
 | 
        boolean[] M100 = melsec_net.ReadBool("M100", (short) 1).Content;           // 读取M100是否通,十进制地址 
 | 
        boolean[] X20 = melsec_net.ReadBool("X20", (short) 1).Content;             // 读取X20是否通,八进制地址 
 | 
        boolean[] Y20 = melsec_net.ReadBool("Y20", (short) 1).Content;             // 读取Y20是否通,八进制地址 
 | 
        short short_D1000 = melsec_net.ReadInt16("D1000").Content;                 // 读取D1000的short值 
 | 
        int int_D1000 = melsec_net.ReadInt32("D1000").Content;                     // 读取D1000-D1001组成的int数据 
 | 
        float float_D1000 = melsec_net.ReadFloat("D1000").Content;                 // 读取D1000-D1001组成的float数据 
 | 
        long long_D1000 = melsec_net.ReadInt64("D1000").Content;                   // 读取D1000-D1003组成的long数据 
 | 
        double double_D1000 = melsec_net.ReadDouble("D1000").Content;              // 读取D1000-D1003组成的double数据 
 | 
        String str_D1000 = melsec_net.ReadString("D1000", (short) 10).Content;     // 读取D1000-D1009组成的条码数据 
 | 
  
 | 
  
 | 
        melsec_net.Write("M100", new boolean[]{true});                            // 写入M100为通 
 | 
        melsec_net.Write("Y20", new boolean[]{true});                             // 写入Y20为通 
 | 
        melsec_net.Write("X20", new boolean[]{true});                             // 写入X20为通 
 | 
        melsec_net.Write("D1000", (short) 1234);                                  // 写入D1000  short值  ,W3C0,R3C0 效果是一样的 
 | 
        melsec_net.Write("D1000", 1234566);                                // 写入D1000  int值 
 | 
        melsec_net.Write("D1000", 123.456f);                               // 写入D1000  float值 
 | 
        melsec_net.Write("D1000", 123.456d);                               // 写入D1000  double值 
 | 
        melsec_net.Write("D1000", 123456661235123534L);                    // 写入D1000  long值 
 | 
        melsec_net.Write("D1000", "K123456789");                           // 写入D1000  string值 
 | 
  
 | 
  
 | 
        OperateResultExOne<boolean[]> read = melsec_net.ReadBool("M100", (short) 10); 
 | 
        if (read.IsSuccess) { 
 | 
            boolean m100 = read.Content[0]; 
 | 
            boolean m101 = read.Content[1]; 
 | 
            boolean m102 = read.Content[2]; 
 | 
            boolean m103 = read.Content[3]; 
 | 
            boolean m104 = read.Content[4]; 
 | 
            boolean m105 = read.Content[5]; 
 | 
            boolean m106 = read.Content[6]; 
 | 
            boolean m107 = read.Content[7]; 
 | 
            boolean m108 = read.Content[8]; 
 | 
            boolean m109 = read.Content[9]; 
 | 
        } else { 
 | 
            System.out.print("读取失败:" + read.Message); 
 | 
        } 
 | 
  
 | 
  
 | 
        OperateResultExOne<byte[]> read1 = melsec_net.Read("D100", (short) 5); 
 | 
        if (read1.IsSuccess) { 
 | 
            short D100 = melsec_net.getByteTransform().TransInt16(read1.Content, 0); 
 | 
            short D101 = melsec_net.getByteTransform().TransInt16(read1.Content, 2); 
 | 
            short D102 = melsec_net.getByteTransform().TransInt16(read1.Content, 4); 
 | 
            short D103 = melsec_net.getByteTransform().TransInt16(read1.Content, 6); 
 | 
            short D104 = melsec_net.getByteTransform().TransInt16(read1.Content, 8); 
 | 
        } else { 
 | 
            System.out.print("读取失败:" + read1.Message); 
 | 
        } 
 | 
  
 | 
  
 | 
        //解析复杂数据 
 | 
        OperateResultExOne<byte[]> read3 = melsec_net.Read("D4000", (short) 10); 
 | 
        if (read3.IsSuccess) { 
 | 
            double 温度 = melsec_net.getByteTransform().TransInt16(read3.Content, 0) / 10d;//索引很重要 
 | 
            double 压力 = melsec_net.getByteTransform().TransInt16(read3.Content, 2) / 100d; 
 | 
            boolean IsRun = melsec_net.getByteTransform().TransInt16(read3.Content, 4) == 1; 
 | 
            int 产量 = melsec_net.getByteTransform().TransInt32(read3.Content, 6); 
 | 
            String 规格 = melsec_net.getByteTransform().TransString(read3.Content, 10, 10, "ascii"); 
 | 
        } else { 
 | 
            System.out.print("读取失败:" + read3.Message); 
 | 
        } 
 | 
  
 | 
        // 写入测试,M100-M104 写入测试 此处写入后M100:通 M101:断 M102:断 M103:通 M104:通 
 | 
        boolean[] values = new boolean[]{true, false, false, true, true}; 
 | 
        OperateResult write = melsec_net.Write("M100", values); 
 | 
        if (write.IsSuccess) { 
 | 
            System.out.print("写入成功"); 
 | 
        } else { 
 | 
            System.out.print("写入失败:" + write.Message); 
 | 
        } 
 | 
  
 | 
  
 | 
        OperateResultExOne<Boolean> read2 = melsec_net.ReadBool("M100"); 
 | 
        if (read2.IsSuccess) { 
 | 
            System.out.println(read2.Content); 
 | 
        } else { 
 | 
            System.out.println("读取失败:" + read.Message); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 三菱   Q 
 | 
     */ 
 | 
    private static void MelsecTest() { 
 | 
        MelsecMcNet melsec_net = new MelsecMcNet("192.168.1.192", 6001); 
 | 
  
 | 
  
 | 
        boolean[] M100 = melsec_net.ReadBool("M100", (short) 1).Content;            // 读取M100是否通,十进制地址 
 | 
        boolean[] X1A0 = melsec_net.ReadBool("X1A0", (short) 1).Content;            // 读取X1A0是否通,十六进制地址 
 | 
        boolean[] Y1A0 = melsec_net.ReadBool("Y1A0", (short) 1).Content;            // 读取Y1A0是否通,十六进制地址 
 | 
        boolean[] B1A0 = melsec_net.ReadBool("B1A0", (short) 1).Content;            // 读取B1A0是否通,十六进制地址 
 | 
        short short_D1000 = melsec_net.ReadInt16("D1000").Content;                 // 读取D1000的short值  ,W3C0,R3C0 效果是一样的 
 | 
        int int_D1000 = melsec_net.ReadInt32("D1000").Content;                     // 读取D1000-D1001组成的int数据 
 | 
        float float_D1000 = melsec_net.ReadFloat("D1000").Content;                 // 读取D1000-D1001组成的float数据 
 | 
        long long_D1000 = melsec_net.ReadInt64("D1000").Content;                   // 读取D1000-D1003组成的long数据 
 | 
        double double_D1000 = melsec_net.ReadDouble("D1000").Content;              // 读取D1000-D1003组成的double数据 
 | 
        String str_D1000 = melsec_net.ReadString("D1000", (short) 10).Content;     // 读取D1000-D1009组成的条码数据 
 | 
  
 | 
  
 | 
        melsec_net.Write("M100", new boolean[]{true});                          // 写入M100为通 
 | 
        melsec_net.Write("Y1A0", new boolean[]{true});                        // 写入Y1A0为通 
 | 
        melsec_net.Write("X1A0", new boolean[]{true});                        // 写入X1A0为通 
 | 
        melsec_net.Write("B1A0", new boolean[]{true});                        // 写入B1A0为通 
 | 
        melsec_net.Write("D1000", (short) 1234);                                   // 写入D1000  short值  ,W3C0,R3C0 效果是一样的 
 | 
        melsec_net.Write("D1000", 1234566);                                // 写入D1000  int值 
 | 
        melsec_net.Write("D1000", 123.456f);                               // 写入D1000  float值 
 | 
        melsec_net.Write("D1000", 123.456d);                               // 写入D1000  double值 
 | 
        melsec_net.Write("D1000", 123456661235123534L);                    // 写入D1000  long值 
 | 
        melsec_net.Write("D1000", "K123456789");                           // 写入D1000  string值 
 | 
  
 | 
  
 | 
        OperateResultExOne<boolean[]> read = melsec_net.ReadBool("M100", (short) 10); 
 | 
        if (read.IsSuccess) { 
 | 
            boolean m100 = read.Content[0]; 
 | 
            boolean m101 = read.Content[1]; 
 | 
            boolean m102 = read.Content[2]; 
 | 
            boolean m103 = read.Content[3]; 
 | 
            boolean m104 = read.Content[4]; 
 | 
            boolean m105 = read.Content[5]; 
 | 
            boolean m106 = read.Content[6]; 
 | 
            boolean m107 = read.Content[7]; 
 | 
            boolean m108 = read.Content[8]; 
 | 
            boolean m109 = read.Content[9]; 
 | 
        } else { 
 | 
            System.out.print("读取失败:" + read.Message); 
 | 
        } 
 | 
  
 | 
  
 | 
        OperateResultExOne<byte[]> read1 = melsec_net.Read("D100", (short) 5); 
 | 
        if (read1.IsSuccess) { 
 | 
            short D100 = melsec_net.getByteTransform().TransByte(read1.Content, 0); 
 | 
            short D101 = melsec_net.getByteTransform().TransByte(read1.Content, 2); 
 | 
            short D102 = melsec_net.getByteTransform().TransByte(read1.Content, 4); 
 | 
            short D103 = melsec_net.getByteTransform().TransByte(read1.Content, 6); 
 | 
            short D104 = melsec_net.getByteTransform().TransByte(read1.Content, 8); 
 | 
        } else { 
 | 
            System.out.print("读取失败:" + read1.Message); 
 | 
        } 
 | 
  
 | 
  
 | 
        //解析复杂数据 
 | 
        OperateResultExOne<byte[]> read3 = melsec_net.Read("D4000", (short) 10); 
 | 
        if (read3.IsSuccess) { 
 | 
            double 温度 = melsec_net.getByteTransform().TransInt16(read3.Content, 0) / 10d;//索引很重要 
 | 
            double 压力 = melsec_net.getByteTransform().TransInt16(read3.Content, 2) / 100d; 
 | 
            boolean IsRun = melsec_net.getByteTransform().TransInt16(read3.Content, 4) == 1; 
 | 
            int 产量 = melsec_net.getByteTransform().TransInt32(read3.Content, 6); 
 | 
            String 规格 = melsec_net.getByteTransform().TransString(read3.Content, 10, 10, "ascii"); 
 | 
        } else { 
 | 
            System.out.print("读取失败:" + read3.Message); 
 | 
        } 
 | 
  
 | 
        // 写入测试,M100-M104 写入测试 此处写入后M100:通 M101:断 M102:断 M103:通 M104:通 
 | 
        boolean[] values = new boolean[]{true, false, false, true, true}; 
 | 
        OperateResult write = melsec_net.Write("M100", values); 
 | 
        if (write.IsSuccess) { 
 | 
            System.out.print("写入成功"); 
 | 
        } else { 
 | 
            System.out.print("写入失败:" + write.Message); 
 | 
        } 
 | 
  
 | 
  
 | 
        OperateResultExOne<Boolean> read2 = melsec_net.ReadBool("M100"); 
 | 
        if (read2.IsSuccess) { 
 | 
            System.out.println(read2.Content); 
 | 
        } else { 
 | 
            System.out.println("读取失败:" + read.Message); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 三菱   Q   ASCII通讯格式 
 | 
     */ 
 | 
    private  static void MelsecAsciiTest(){ 
 | 
  
 | 
        MelsecMcAsciiNet melsec = new MelsecMcAsciiNet("192.168.1.192",6001); 
 | 
        OperateResultExOne<short[]> read = melsec.ReadInt16("D100",(short) 2); 
 | 
        if(read.IsSuccess) 
 | 
        { 
 | 
            System.out.println(Arrays.toString(read.Content)); 
 | 
        } 
 | 
        else { 
 | 
            System.out.println(read.ToMessageShowString()); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 西门子 
 | 
     */ 
 | 
    private static void SiemesTest(){ 
 | 
        SiemensS7Net siemens_net = new SiemensS7Net(SiemensPLCS.S1200,"192.168.1.195"); 
 | 
        OperateResult connect = siemens_net.ConnectServer(); 
 | 
        if(connect.IsSuccess){ 
 | 
            System.out.println("connect success!"); 
 | 
        } 
 | 
        else { 
 | 
            System.out.println("failed:"+connect.Message); 
 | 
        } 
 | 
        siemens_net.ConnectClose(); 
 | 
  
 | 
        // 上面是初始化 
 | 
        System.out.println(siemens_net.ReadByte("M100").Content); 
 | 
  
 | 
        byte m100_byte = siemens_net.ReadByte("M100").Content; 
 | 
        short m100_short = siemens_net.ReadInt16("M100").Content; 
 | 
        int m100_int = siemens_net.ReadInt32("M100").Content; 
 | 
        long m100_long = siemens_net.ReadInt64("M100").Content; 
 | 
        float m100_float = siemens_net.ReadFloat("M100").Content; 
 | 
        double m100_double = siemens_net.ReadDouble("M100").Content; 
 | 
        String m100_string = siemens_net.ReadString("M100",(short) 10).Content; 
 | 
  
 | 
        siemens_net.Write("M100",(byte) 123); 
 | 
        siemens_net.Write("M100",(short) 123); 
 | 
        siemens_net.Write("M100",(int) 123); 
 | 
        siemens_net.Write("M100",(long) 123); 
 | 
        siemens_net.Write("M100", 123.456f); 
 | 
        siemens_net.Write("M100", 123.456d); 
 | 
        siemens_net.Write("M100","1234567890"); 
 | 
  
 | 
        OperateResultExOne<byte[]> read = siemens_net.Read( "M100", (short) 10 ); 
 | 
        { 
 | 
            if(read.IsSuccess) 
 | 
            { 
 | 
                byte m100 = read.Content[0]; 
 | 
                byte m101 = read.Content[1]; 
 | 
                byte m102 = read.Content[2]; 
 | 
                byte m103 = read.Content[3]; 
 | 
                byte m104 = read.Content[4]; 
 | 
                byte m105 = read.Content[5]; 
 | 
                byte m106 = read.Content[6]; 
 | 
                byte m107 = read.Content[7]; 
 | 
                byte m108 = read.Content[8]; 
 | 
                byte m109 = read.Content[9]; 
 | 
            } 
 | 
            else 
 | 
            { 
 | 
                // 发生了异常 
 | 
            } 
 | 
        } 
 | 
  
 | 
    } 
 | 
  
 | 
    private static void PushNetTest() { 
 | 
        NetPushClient client = new NetPushClient("127.0.0.1", 23467, "A"); 
 | 
        OperateResult connect = client.CreatePush(new ActionOperateExTwo<NetPushClient,String>(){ 
 | 
            @Override 
 | 
            public void Action(NetPushClient content1, String content2) { 
 | 
                System.out.println(content2); 
 | 
            } 
 | 
        }); 
 | 
        if (connect.IsSuccess) { 
 | 
            System.out.println("连接成功!"); 
 | 
        } else { 
 | 
            System.out.println("连接失败!"+connect.Message); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    private static void ModbusTcpTets(){ 
 | 
        ModbusTcpNet modbusTcpNet = new ModbusTcpNet("127.0.0.1",502,(byte) 0x01); 
 | 
        // 当你需要指定格式的数据解析时,就需要设置下面的这个信息 
 | 
        modbusTcpNet.setDataFormat(DataFormat.BADC); 
 | 
        OperateResultExOne<Double> read = modbusTcpNet.ReadDouble("s=2;x=4;200"); 
 | 
        if(read.IsSuccess){ 
 | 
            System.out.println(read.Content); 
 | 
        } 
 | 
        else { 
 | 
            System.out.println(read.Message); 
 | 
        } 
 | 
  
 | 
        modbusTcpNet.Write("100",new int[]{12345,-12345}); 
 | 
    } 
 | 
  
 | 
    private static void NetComplexClientTest(){ 
 | 
        System.out.println("Hello World!等待10s关闭"); 
 | 
        NetComplexClient client = new NetComplexClient(); 
 | 
        client.setIpAddress("127.0.0.1"); 
 | 
        client.setPort(12346); 
 | 
        client.setClientAlias("测试1"); 
 | 
        client.AcceptString= new ActionOperateExThree<NetComplexClient,NetHandle,String>(){ 
 | 
            @Override 
 | 
            public void Action(NetComplexClient content1, NetHandle content2, String content3) { 
 | 
                System.out.println("Handle:"+content2.get_CodeValue()+"  Value:"+content3); 
 | 
            } 
 | 
        }; 
 | 
  
 | 
  
 | 
        client.ClientStart(); 
 | 
  
 | 
//        client.Send(new NetHandle(1),"asdasdi阿斯达阿斯达"); 
 | 
//        System.out.println(client.getDelayTime()); 
 | 
//        Thread.sleep(100000); 
 | 
//        client.ClientClose(); 
 | 
  
 | 
  
 | 
    } 
 | 
  
 | 
} 
 |