数据接收传输.docx
《数据接收传输.docx》由会员分享,可在线阅读,更多相关《数据接收传输.docx(10页珍藏版)》请在冰豆网上搜索。
![数据接收传输.docx](https://file1.bdocx.com/fileroot1/2023-1/21/7003896b-759e-4880-8423-492bb680b052/7003896b-759e-4880-8423-492bb680b0521.gif)
数据接收传输
个股分析
———数据发送与接收
1、BlockPic.cpp板块
进入个股分析版面,跳入到BlockPic.cpp文件,选中LoadData()函数,断点跟踪,进入到m_pData=pGoods->LoadData(m_sDataType,m_sPeriod,m_cCQ,TRUE)断点中,进入到Goods.cpp文件中,通过条件选择语句,选择到pData=newCNewDayData;即为日线的生成,跟入到其中LoadData()函数中的pData->LoadData();跳入到Data.cpp文件中的CNewDayData:
:
LoadData();
继续跟入,跳出Data文件进入到到BlockPic文件中的m_pData->SetWant(CalcWant()
跟入进到Data文件中的CData:
:
SetWant(intnWant,BOOLbSend)
到条件判断语句,由bWantSend为1,执行Data文件中的AddSockData();
m_pSockData->m_pData=this;g_rDSSocket.AddData(m_pSockData);取得本版块的类地址,进入到ClientSocket文件中的
CClientSocket:
:
AddData(CSockData*pData),CClientSocket:
:
SendData()
BlockInfoBase文件中的CBlockInfoBase:
:
SendSockData(CBuffer&buf)
CBlockInfoBase:
:
RecvSockData(CBuffer&buf)
CBlockInfoBase:
:
RecvSockData(CBuffer&buf)
SocketData文件中CDS_BlockData:
:
Send(CBuffer&buf)
Data文件中的CNewDayData:
:
SendSockData(CBuffer&buf)
SocketData文件中的CDS_BlockData:
:
Send(CBuffer&buf)
CNewDayData:
:
RecvSockData(CBuffer&buf)
CBlockPic:
:
LoadData()
m_pData=pGoods->LoadData(m_sDataType,m_sPeriod,m_cCQ,TRUE);
CNewDayData:
:
LoadData()
CClientSocket:
:
AddData(CSockData*pData)
CClientSocket:
:
AddData(CSockData*pData)
CClientSocket:
:
AddData(CSockData*pData)
CBlockPic:
:
LoadData()
m_pData=pGoods->LoadData(m_sDataType,m_sPeriod,m_cCQ,TRUE);
CNewDayData:
:
SendSockData(CBuffer&buf)
CClientSocket:
:
AddData(CSockData*pData)
CClientSocket:
:
AddData(CSockData*pData)
CClientSocket:
:
AddData(CSockData*pData)
CClientSocket:
:
OnSend(intnErrorCode)
CDS_BlockData:
:
Send(CBuffer&buf)
CNewDayData:
:
SendSockData(CBuffer&buf)
CDS_BlockData:
:
Send(CBuffer&buf)
CBlockInfoBase:
:
SendSockData(CBuffer&buf)
CClientSocket:
:
OnConnect(intnErrorCode)
CClientSocket:
:
AddData(CSockData*pData)
CClientSocket:
:
OnSend(intnErrorCode)
CClientSocket:
:
OnConnect(intnErrorCode)
CClientSocket:
:
AddData(CSockData*pData)
CClientSocket:
:
OnSend(intnErrorCode)
CClientSocket:
:
OnConnect(intnErrorCode)
CClientSocket:
:
AddData(CSockData*pData)
CClientSocket:
:
OnSend(intnErrorCode)
CClientSocket:
:
OnConnect(intnErrorCode)
接收数据,不断更新;
程序流程图:
BlockPic版块的画图函数Draw()
2、BlockFrame.cpp板块
首先通过voidCBlockFrame:
:
LoadData()
{
if(m_pActiveBlock)
m_pActiveBlock->LoadData();
}
来判断此时是哪个版块是活动的版块,然后再根据活动版块来进行相应的收发消息。
2.1、BlockFrame.cpp版块(信息表1)
在这个板块中,其中的LoadData()函数是一直调用的是BlockAlarm和BlockFrame中的LoadData()函数,而其中他自己的数据更新是在画图时来更新的,其步骤为:
CBlockFrame:
:
Draw(CDC*pDC)
调用其中的DrawQuote(pDC);即为CBlockFrame:
:
DrawQuote(CDC*pDC)
由其中的field.m_sValueID=psFieldID[s];其定义为short*psFieldID=l_psID_Index;
CBlockFrame:
:
Draw(CDC*pDC)
CClientSocket:
:
OnReceive(intnErrorCode)
2.2、BlockFrame.cpp版块(信息表2)
2.3、BlockAlarm.cpp板块
2.3.1、“统”字
CBlockAlarm:
:
LoadData()
CBlockWnd:
:
LoadData();
CBlockWnd:
:
AddSockData()
m_pSockData->m_pBlock=this;g_rDSSocket.AddData(m_pSockData);
CClientSocket:
:
AddData(CSockData*pData)
CClientSocket:
:
SendData()
CDS_BlockData:
:
Send(CBuffer&buf)
2.2.2、“表”字
CBlockAlarm:
:
LoadData()
CBlockWnd:
:
LoadData();
CBlockWnd:
:
AddSockData()
m_pSockData->m_pBlock=this;g_rDSSocket.AddData(m_pSockData);
CClientSocket:
:
AddData(CSockData*pData)
CClientSocket:
:
SendData()
CDS_BlockData:
:
Send(CBuffer&buf)
最后,连接一次不断的更新新的数据
CClientSocket:
:
OnReceive(intnErrorCode)
CClientSocket:
:
OnSend(intnErrorCode)
交替不断调用,实现“表”连接一次,不断更新
CBlockWnd:
:
LoadData()
CBlockWnd:
:
AddSockData()
g_rDSSocket.AddData(m_pSockData);
CClientSocket:
:
AddData(CSockData*pData)
SendData();
CClientSocket:
:
SendData()
2.4、BlockDragon.cpp板块
龙虎看盘饼状图: