📄 receivethread.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: 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 + -