⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 requestutil.java

📁 一份java写的期货交易程序
💻 JAVA
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi 
// Source File Name:   RequestUtil.java

package gnnt.util.service.HQVO;

import java.io.*;
import java.net.*;
import java.util.zip.GZIPInputStream;

// Referenced classes of package gnnt.util.service.HQVO:
//            CMDVO, CMDProductInfoVO, CMDSortVO, CMDQuoteVO, 
//            CMDBillVO, CMDMinVO, CMDMarketSortVO, CMDByTimeVO, 
//            ProductInfoListVO

public class RequestUtil
{

    public static final byte CMD_TEST_CONNECT = 0;
    public static final byte CMD_CODELIST = 1;
    public static final byte CMD_QUOTE = 2;
    public static final byte CMD_CLASS_SORT = 3;
    public static final byte CMD_MIN_DATA = 4;
    public static final byte CMD_BILL_DATA = 5;
    public static final byte CMD_TRADETIME = 6;
    public static final byte CMD_DATE = 7;
    public static final byte CMD_MARKET_SORT = 8;
    public static final byte CMD_BYTIME = 9;
    public static final byte CMD_MIN_LINE_INTERVAL = 10;
    public static final byte CMD_QUOTE_LIST = 20;

    public RequestUtil()
    {
    }

    public static void sendRequest(CMDVO cmd, Socket socket)
        throws IOException
    {
        DataOutputStream output = new DataOutputStream(socket.getOutputStream());
        ByteArrayOutputStream array = new ByteArrayOutputStream();
        DataOutputStream outputArray = new DataOutputStream(array);
        switch(cmd.cmd)
        {
        case 11: // '\013'
        case 12: // '\f'
        case 13: // '\r'
        case 14: // '\016'
        case 15: // '\017'
        case 16: // '\020'
        case 17: // '\021'
        case 18: // '\022'
        case 19: // '\023'
        default:
            break;

        case 10: // '\n'
            outputArray.writeByte(10);
            outputArray.flush();
            output.write(array.toByteArray());
            output.flush();
            outputArray.close();
            break;

        case 1: // '\001'
            CMDProductInfoVO cmdList = (CMDProductInfoVO)cmd;
            outputArray.writeByte(1);
            outputArray.writeInt(cmdList.date);
            outputArray.writeInt(cmdList.time);
            outputArray.flush();
            output.write(array.toByteArray());
            output.flush();
            outputArray.close();
            break;

        case 3: // '\003'
            CMDSortVO cmdSort = (CMDSortVO)cmd;
            outputArray.writeByte(3);
            outputArray.writeByte(cmdSort.sortBy);
            outputArray.writeByte(cmdSort.isDescend);
            outputArray.writeInt(cmdSort.start);
            outputArray.writeInt(cmdSort.end);
            outputArray.flush();
            output.write(array.toByteArray());
            output.flush();
            outputArray.close();
            break;

        case 2: // '\002'
            CMDQuoteVO cmdQuote = (CMDQuoteVO)cmd;
            outputArray.writeByte(2);
            outputArray.writeByte(cmdQuote.isAll);
            outputArray.writeInt(cmdQuote.codeList.length);
            for(int i = 0; i < cmdQuote.codeList.length; i++)
            {
                outputArray.writeUTF(cmdQuote.codeList[i][0]);
                outputArray.writeUTF(cmdQuote.codeList[i][1]);
            }

            outputArray.flush();
            output.write(array.toByteArray());
            output.flush();
            outputArray.close();
            break;

        case 5: // '\005'
            CMDBillVO bill = (CMDBillVO)cmd;
            outputArray.writeByte(5);
            outputArray.writeUTF(bill.code);
            outputArray.writeByte(bill.type);
            outputArray.writeInt(bill.time);
            outputArray.flush();
            output.write(array.toByteArray());
            output.flush();
            outputArray.close();
            break;

        case 4: // '\004'
            CMDMinVO min = (CMDMinVO)cmd;
            outputArray.writeByte(4);
            outputArray.writeUTF(min.code);
            outputArray.writeByte(min.type);
            outputArray.writeInt(min.time);
            outputArray.flush();
            output.write(array.toByteArray());
            output.flush();
            outputArray.close();
            break;

        case 8: // '\b'
            CMDMarketSortVO cmdMarketSort = (CMDMarketSortVO)cmd;
            outputArray.writeByte(8);
            outputArray.writeInt(cmdMarketSort.num);
            outputArray.flush();
            output.write(array.toByteArray());
            output.flush();
            outputArray.close();
            break;

        case 7: // '\007'
            outputArray.writeByte(7);
            outputArray.flush();
            output.write(array.toByteArray());
            output.flush();
            outputArray.close();
            break;

        case 6: // '\006'
            outputArray.writeByte(6);
            outputArray.flush();
            output.write(array.toByteArray());
            output.flush();
            outputArray.close();
            break;

        case 9: // '\t'
            CMDByTimeVO cmdByTime = (CMDByTimeVO)cmd;
            outputArray.writeByte(9);
            outputArray.writeInt(cmdByTime.time);
            outputArray.flush();
            output.write(array.toByteArray());
            output.flush();
            outputArray.close();
            break;

        case 20: // '\024'
            outputArray.writeByte(20);
            outputArray.flush();
            output.write(array.toByteArray());
            output.flush();
            outputArray.close();
            break;
        }
    }

    private static byte[] getRepoent(String url)
        throws MalformedURLException, IOException
    {
        URL page = null;
        page = new URL(url);
        URLConnection urlc = page.openConnection();
        urlc.connect();
        BufferedInputStream inputs = new BufferedInputStream(urlc.getInputStream());
        ByteArrayOutputStream array = new ByteArrayOutputStream();
        for(byte by[] = new byte[1024]; inputs.read(by) > 0; array.write(by));
        inputs.close();
        return array.toByteArray();
    }

    public static ProductInfoListVO getProductInfoList(String url)
        throws MalformedURLException, IOException
    {
        ByteArrayInputStream arrayInput = new ByteArrayInputStream(getRepoent(url));
        GZIPInputStream gzin = new GZIPInputStream(arrayInput);
        DataInputStream input = new DataInputStream(gzin);
        input.readByte();
        ProductInfoListVO productInfoList = CMDProductInfoVO.getObj(input);
        input.close();
        gzin.close();
        return productInfoList;
    }

    public static void main(String args[])
    {
        try
        {
            Socket socket = new Socket("127.0.0.1", 888);
            CMDMinVO cmd = new CMDMinVO();
            cmd.code = "G0509";
            sendRequest(cmd, socket);
            DataInputStream input = new DataInputStream(socket.getInputStream());
            System.out.println(input.readByte());
            System.out.println(input.readUTF());
            System.out.println(input.readByte());
            System.out.println(input.readInt());
            Object objs[] = CMDMinVO.getObj(input);
            for(int i = 0; i < objs.length; i++)
                System.out.println(objs[i]);

            System.out.println("2");
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -