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

📄 receivethread.java

📁 一份java写的期货交易程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// 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:   ReceiveThread.java

package gnnt.MEBS.HQApplet;

import gnnt.MEBS.hq.*;
import gnnt.util.service.HQVO.*;
import java.awt.Component;
import java.io.*;
import java.net.Socket;
import java.util.Hashtable;
import java.util.Vector;

// Referenced classes of package gnnt.MEBS.HQApplet:
//            HQApplet, SendThread, ProductData, Page_MultiQuote, 
//            Page_MarketStatus, Packet_MarketStatus, Common, CodeTable

public class ReceiveThread extends Thread
{

    HQApplet m_applet;

    public ReceiveThread(HQApplet applet)
    {
        m_applet = applet;
    }

    public void run()
    {
        DataInputStream reader = null;
        while(m_applet != null && m_applet.bRunning) 
        {
            if(m_applet.socket == null)
            {
                reader = null;
                try
                {
                    Thread.sleep(500L);
                }
                catch(InterruptedException interruptedexception) { }
                continue;
            }
            try
            {
                if(reader == null)
                    reader = new DataInputStream(new BufferedInputStream(m_applet.socket.getInputStream()));
                byte cmd = reader.readByte();
                switch(cmd)
                {
                case 0: // '\0'
                    break;

                case 7: // '\007'
                    HQApplet _tmp = m_applet;
                    if(HQApplet.bDebug != 0)
                        System.out.println("Receive cmd: " + cmd + " 市场日期");
                    int date = reader.readInt();
                    int time = reader.readInt();
                    int oldDate = m_applet.m_iDate;
                    int oldTime = m_applet.m_iTime;
                    if(m_applet.m_iDate == 0 || date != oldDate)
                    {
                        m_applet.m_iDate = date;
                        m_applet.vProductData.removeAllElements();
                        m_applet.m_quoteList = new ProductDataVO[0];
                    }
                    m_applet.m_iTime = time;
                    m_applet.repaintBottom();
                    HQApplet _tmp1 = m_applet;
                    if(HQApplet.bDebug != 0)
                        System.out.println("Date:" + m_applet.m_iDate + " " + time);
                    if(oldDate != m_applet.m_iDate || oldTime != m_applet.m_iTime)
                        m_applet.repaint();
                    break;

                case 6: // '\006'
                    HQApplet _tmp2 = m_applet;
                    if(HQApplet.bDebug != 0)
                        System.out.println("Receive cmd: " + cmd + " 交易节时间");
                    m_applet.m_timeRange = CMDTradeTimeVO.getObj(reader);
                    break;

                case 1: // '\001'
                    HQApplet _tmp3 = m_applet;
                    if(HQApplet.bDebug != 0)
                        System.out.println("Receive cmd: " + cmd + " 更新码表");
                    ReceiveCodeTable(reader);
                    break;

                case 2: // '\002'
                    HQApplet _tmp4 = m_applet;
                    if(HQApplet.bDebug != 0)
                        System.out.println("Receive cmd: " + cmd + " 个股行情");
                    ReceiveStockQuote(reader);
                    break;

                case 8: // '\b'
                    HQApplet _tmp5 = m_applet;
                    if(HQApplet.bDebug != 0)
                        System.out.println("Receive cmd: " + cmd + " 综合排名");
                    ReceiveMarketSort(reader);
                    break;

                case 5: // '\005'
                    HQApplet _tmp6 = m_applet;
                    if(HQApplet.bDebug != 0)
                        System.out.println("Receive cmd: " + cmd + " 成交明细");
                    ReceiveBillData(reader);
                    break;

                case 4: // '\004'
                    HQApplet _tmp7 = m_applet;
                    if(HQApplet.bDebug != 0)
                        System.out.println("Receive cmd: " + cmd + " 分时数据");
                    ReceiveMinLineData(reader);
                    break;

                case 10: // '\n'
                    m_applet.m_iMinLineInterval = reader.readInt();
                    HQApplet _tmp8 = m_applet;
                    if(HQApplet.bDebug != 0)
                        System.out.println("Receive cmd: " + cmd + " 分时间隔:" + m_applet.m_iMinLineInterval);
                    if(m_applet.m_iMinLineInterval <= 0 || m_applet.m_iMinLineInterval > 60)
                        m_applet.m_iMinLineInterval = 60;
                    break;

                case 20: // '\024'
                    HQApplet _tmp9 = m_applet;
                    if(HQApplet.bDebug != 0)
                        System.out.println("Receive cmd: " + cmd + " 行情列表更新");
                    ReceiveQuoteList(reader);
                    break;

                case 3: // '\003'
                case 9: // '\t'
                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:
                    HQApplet _tmp10 = m_applet;
                    if(HQApplet.bDebug != 0)
                        System.out.println("Receive cmd: " + cmd + " 非法数据");
                    m_applet.socket.close();
                    m_applet.socket = null;
                    m_applet.sendThread.AskForData(null);
                    break;
                }
                continue;
            }
            catch(EOFException e)
            {
label0:
                {
                    if(m_applet != null)
                    {
                        HQApplet _tmp11 = m_applet;
                        if(HQApplet.bDebug == 0)
                            break label0;
                    }
                    e.printStackTrace();
                }
                try
                {
                    if(m_applet.socket != null)
                        m_applet.socket.close();
                    m_applet.socket = null;
                }
                catch(Exception exception) { }
                if(m_applet != null && m_applet.bRunning)
                    m_applet.sendThread.AskForData(null);
                continue;
            }
            catch(Exception e)
            {
label1:
                {
                    if(m_applet != null)
                    {
                        HQApplet _tmp12 = m_applet;
                        if(HQApplet.bDebug == 0)
                            break label1;
                    }
                    System.out.println("Socket error ");
                    e.printStackTrace();
                }
                if(m_applet != null && m_applet.bRunning)
                {
                    m_applet.socket = null;
                    m_applet.sendThread.AskForData(null);
                }
            }
        }
        System.out.println("ReceiveThread Exit !");
    }

    private void ReceiveStockQuote(DataInputStream reader)
        throws IOException
    {
        ProductDataVO data[] = CMDQuoteVO.getObj(reader);
        String sCode = "";
        for(int i = 0; i < data.length; i++)
        {
            sCode = data[i].code;
            ProductData stock = m_applet.GetProductData(sCode);
            if(stock == null)
            {
                if(m_applet.vProductData.size() > 50)
                    m_applet.vProductData.removeElementAt(50);
                stock = new ProductData();
                stock.sCode = sCode;
                stock.realData = data[i];
                m_applet.vProductData.insertElementAt(stock, 0);
            } else
            {
                stock.realData = data[i];
            }
        }

        if(data.length > 0 && (2 == m_applet.iCurrentPage || 1 == m_applet.iCurrentPage) && m_applet.strCurrentCode.equals(sCode))
            m_applet.repaint();
        if(data.length > 0 && m_applet.m_bShowIndexAtBottom == 1 && m_applet.indexMainCode.length() > 0 && data[0].code.equalsIgnoreCase(m_applet.indexMainCode))
            m_applet.repaintBottom();
    }

    private void ReceiveQuoteList(DataInputStream reader)
        throws IOException
    {
        ProductDataVO dataList[] = CMDQuoteListVO.getObj(reader);
        HQApplet _tmp = m_applet;
        if(HQApplet.bDebug != 0)
            System.out.println("本次更新条数 = " + dataList.length);
        if(m_applet.m_quoteList.length == 0)
        {
            m_applet.m_quoteList = dataList;
        } else
        {
            for(int i = 0; i < dataList.length; i++)
            {

⌨️ 快捷键说明

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