向衛(wèi)星通訊接收和數(shù)據(jù)處理線程接口技術(shù)手冊(cè)_第1頁
向衛(wèi)星通訊接收和數(shù)據(jù)處理線程接口技術(shù)手冊(cè)_第2頁
向衛(wèi)星通訊接收和數(shù)據(jù)處理線程接口技術(shù)手冊(cè)_第3頁
向衛(wèi)星通訊接收和數(shù)據(jù)處理線程接口技術(shù)手冊(cè)_第4頁
向衛(wèi)星通訊接收和數(shù)據(jù)處理線程接口技術(shù)手冊(cè)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 單向衛(wèi)星通訊接收和數(shù)據(jù)處理線程接口技術(shù)手冊(cè) 項(xiàng)目負(fù)責(zé)人: 編 寫: 武劍鋒 朱立 庹軍民 審 核: 庹軍民 批 準(zhǔn): 客 戶 確 認(rèn):正文目錄 TOC o 1-3 h z HYPERLINK l _Toc512995969 1引言 PAGEREF _Toc512995969 h 3 HYPERLINK l _Toc512995970 1.1目的 PAGEREF _Toc512995970 h 3 HYPERLINK l _Toc512995971 1.2參考資料 PAGEREF _Toc512995971 h 3 HYPERLINK l _Toc512995972 1.3定義 PAGEREF

2、 _Toc512995972 h 3 HYPERLINK l _Toc512995973 2用途 PAGEREF _Toc512995973 h 4 HYPERLINK l _Toc512995974 3運(yùn)行環(huán)境 PAGEREF _Toc512995974 h 5 HYPERLINK l _Toc512995975 3.1硬件設(shè)備 PAGEREF _Toc512995975 h 5 HYPERLINK l _Toc512995976 3.2支持軟件 PAGEREF _Toc512995976 h 5 HYPERLINK l _Toc512995977 3.3數(shù)據(jù)說明 PAGEREF _Toc5

3、12995977 h 5 HYPERLINK l _Toc512995978 配置文件dxwx.cfg PAGEREF _Toc512995978 h 5 HYPERLINK l _Toc512995979 報(bào)文 PAGEREF _Toc512995979 h 8 HYPERLINK l _Toc512995980 行情、文件、短消息 任務(wù)起始報(bào)文控制信息 PAGEREF _Toc512995980 h 8 HYPERLINK l _Toc512995981 成交回報(bào)數(shù)據(jù)傳送任務(wù)報(bào)文 PAGEREF _Toc512995981 h 10 HYPERLINK l _Toc512995982 通訊

4、數(shù)據(jù)報(bào)文 PAGEREF _Toc512995982 h 10 HYPERLINK l _Toc512995983 4使用規(guī)程 PAGEREF _Toc512995983 h 12 HYPERLINK l _Toc512995984 4.1安裝 PAGEREF _Toc512995984 h 12 HYPERLINK l _Toc512995985 4.2運(yùn)行 PAGEREF _Toc512995985 h 12 HYPERLINK l _Toc512995986 單向衛(wèi)星通訊接收和數(shù)據(jù)處理主程序 PAGEREF _Toc512995986 h 12 HYPERLINK l _Toc51299

5、5987 數(shù)據(jù)處理示范程序BaseLibDemo.exe PAGEREF _Toc512995987 h 14 HYPERLINK l _Toc512995988 5用戶開發(fā)數(shù)據(jù)處理程序說明 PAGEREF _Toc512995988 h 15 HYPERLINK l _Toc512995989 5.1應(yīng)用程序編程接口說明 PAGEREF _Toc512995989 h 15 HYPERLINK l _Toc512995990 5.2應(yīng)用程序編程示范文件說明 PAGEREF _Toc512995990 h 16 HYPERLINK l _Toc512995991 6出錯(cuò)處理和恢復(fù) PAGERE

6、F _Toc512995991 h 19表目錄 TOC h z c 表 HYPERLINK l _Toc513964534 表 1 報(bào)文格式 PAGEREF _Toc513964534 h 8 HYPERLINK l _Toc513964535 表 2 文件類報(bào)文起始控制信息格式 PAGEREF _Toc513964535 h 8 HYPERLINK l _Toc513964536 表 3 成交回報(bào)數(shù)據(jù)格式 PAGEREF _Toc513964536 h 10 HYPERLINK l _Toc513964537 表 4 單向衛(wèi)星通訊數(shù)據(jù)報(bào)文結(jié)構(gòu) PAGEREF _Toc513964537 h

7、11圖目錄 TOC h z c 圖 HYPERLINK l _Toc513964678 圖 1數(shù)據(jù)傳遞過程示意圖 PAGEREF _Toc513964678 h 4 HYPERLINK l _Toc513964679 圖 2接收端的數(shù)據(jù)格式變換 PAGEREF _Toc513964679 h 5引言目的本用戶手冊(cè)的讀者是各個(gè)會(huì)員單位的系統(tǒng)程序員。本用戶手冊(cè)的主要目的是為了指導(dǎo)會(huì)員單位接收和處理上海證券交易所通過單向衛(wèi)星發(fā)送的數(shù)據(jù)。參考資料單向衛(wèi)星數(shù)據(jù)接收和處理線程接口源代碼 庹軍民、朱立內(nèi)部資料Dx2000.dll使用指南 庹軍民、 朱立單向衛(wèi)星客戶端接收軟件用戶使用手冊(cè) 朱立定義數(shù)據(jù)傳送任務(wù)

8、:指從上海證券交易所向會(huì)員單位發(fā)送數(shù)據(jù)的一次完整過程。包括行情、成交回報(bào)、文件、短消息傳送任務(wù)。每個(gè)任務(wù)都被賦予一個(gè)唯一的任務(wù)號(hào)。A格式通訊數(shù)據(jù)報(bào)文:指單向衛(wèi)星通訊系統(tǒng)的PC接收機(jī)以太網(wǎng)卡接收到的基于UDP協(xié)議的數(shù)據(jù)報(bào)文 。B格式業(yè)務(wù)數(shù)據(jù)報(bào)文:指單向衛(wèi)星通訊系統(tǒng)傳輸?shù)臉I(yè)務(wù)數(shù)據(jù)報(bào)文 。列如行情數(shù)據(jù) ,成交數(shù)據(jù) ,文件數(shù)據(jù),消息數(shù)據(jù) 。報(bào)文:每個(gè)數(shù)據(jù)傳送任務(wù)在傳輸中,按照固定大小的數(shù)據(jù)包的方式來組織。這些數(shù)據(jù)包被稱為報(bào)文。任務(wù)起始報(bào)文、任務(wù)中間報(bào)文、任務(wù)結(jié)束報(bào)文:數(shù)據(jù)傳送任務(wù)中待傳送數(shù)據(jù)的長(zhǎng)度不等,而報(bào)文的最大長(zhǎng)度是固定的,如果一個(gè)任務(wù)中的數(shù)據(jù)不能在一個(gè)報(bào)文中一次傳送完畢,一個(gè)任務(wù)會(huì)被分為一系列的

9、報(bào)文。其中第1個(gè)報(bào)文就是任務(wù)起始報(bào)文,最后一個(gè)報(bào)文就是任務(wù)結(jié)束報(bào)文,而中間的所有報(bào)文都被稱為任務(wù)中間報(bào)文。通訊接收線程:指運(yùn)行在會(huì)員單位計(jì)算機(jī)上的從單向衛(wèi)星中取數(shù)據(jù)的線程。環(huán)形報(bào)文隊(duì)列:在計(jì)算機(jī)上開辟一塊共享內(nèi)存,這塊內(nèi)存按照環(huán)形隊(duì)列的方式組織。它們作為報(bào)文的緩沖空間,用來匹配單向發(fā)送/通訊接收/數(shù)據(jù)處理的速度。數(shù)據(jù)處理線程:指運(yùn)行在會(huì)員單位計(jì)算機(jī)上的從環(huán)形報(bào)文隊(duì)列中取報(bào)文的線程,它在取到報(bào)文后,經(jīng)過一定的處理過程,按照文件的方式寫入本地計(jì)算機(jī)的硬盤。多點(diǎn)傳送方式:上海證券交易所向多個(gè)會(huì)員單位同時(shí)廣播發(fā)送,具體采用UDP協(xié)議的MULTICAST方式來完成。單點(diǎn)傳送方式:上海證券交易所向特定會(huì)員

10、單位單一發(fā)送,具體采用UDP協(xié)議的UNICAST方式來完成。行情數(shù)據(jù)HQ:指交易所向會(huì)員單位發(fā)送的有關(guān)股票交易的最新價(jià)格、成交量等。這些數(shù)據(jù)通過多點(diǎn)傳送方式發(fā)送。成交回報(bào)數(shù)據(jù)CJ:指交易所向會(huì)員單位發(fā)送的專有的成交紀(jì)錄。這些數(shù)據(jù)通過單點(diǎn)傳送方式發(fā)送。文件數(shù)據(jù)FILE:指交易所向會(huì)員單位發(fā)送的文件。這些文件既有通過多點(diǎn)發(fā)送的,也有通過單點(diǎn)發(fā)送的。短消息數(shù)據(jù)MSG:指交易所向會(huì)員單位發(fā)送的短消息。這些文件既有通過多點(diǎn)發(fā)送的,也有通過單點(diǎn)發(fā)送的。SatelliteReceiver.exe:上海證券交易所提供的單向衛(wèi)星通訊接收和數(shù)據(jù)處理主程序。BaseLibDemo.exe: 上海證券交易所提供的數(shù)據(jù)

11、處理示范程序,會(huì)員單位可以此為參考,實(shí)現(xiàn)自己特定的專有的數(shù)據(jù)處理程序。用途本接口的功能有兩個(gè)獨(dú)立的部分構(gòu)成。一個(gè)部分是通訊接收部分,它從單向衛(wèi)星上把數(shù)據(jù)取下來,然后放到內(nèi)存中的環(huán)形報(bào)文隊(duì)列中去;另外一個(gè)部分是數(shù)據(jù)處理部分,它從這個(gè)環(huán)形報(bào)文隊(duì)列中把報(bào)文數(shù)據(jù)取出,經(jīng)過特定的合并轉(zhuǎn)化等操作,寫出到文件中去。上海證券交易所提供的單向衛(wèi)星通訊接收和數(shù)據(jù)處理主程序SatelliteReceiver.exe 在一個(gè)程序內(nèi)實(shí)現(xiàn)了這兩個(gè)部分。為支持會(huì)員單位更加緊密地結(jié)合他們的信息系統(tǒng),SatelliteReceiver.exe中的第二部分?jǐn)?shù)據(jù)處理部分可以被禁止,由會(huì)員單位獨(dú)立開發(fā)自己的專有的數(shù)據(jù)處理部分并替換。

12、如圖1所示,用戶可以禁止SatelliteReceiver的數(shù)據(jù)處理線程,而啟動(dòng)BaseLibDemo的數(shù)據(jù)處理線程。圖 SEQ 圖 * ARABIC 1數(shù)據(jù)傳遞過程示意圖 單向衛(wèi)星通訊和業(yè)務(wù)數(shù)據(jù)在小站接收端的數(shù)據(jù)格式變換如圖2 。A格式通訊數(shù)據(jù)報(bào)文參見3.3.5 , B格式業(yè)務(wù)數(shù)據(jù)報(bào)文參見3.3.3 ,3.3.4 。A格式通訊數(shù)據(jù)報(bào)文DLL APISh MemB格式業(yè)務(wù)數(shù)據(jù)報(bào)文8 Port通訊報(bào)文頭 通訊報(bào)文體 (B格式業(yè)務(wù)數(shù)據(jù)報(bào)文) A格式通訊數(shù)據(jù)報(bào)文圖 SEQ 圖 * ARABIC 2接收端的數(shù)據(jù)格式變換本系統(tǒng)的使用范圍只限于上海證券交易所的會(huì)員單位。運(yùn)行環(huán)境硬件設(shè)備本軟件所需硬件的最少

13、配置為可運(yùn)行Windows NT 4.0或以后版本的PC機(jī)或PC服務(wù)器。建議采用相對(duì)高檔的機(jī)器,以保證系統(tǒng)的穩(wěn)定性。例如下列配置:Pentium III 800以上處理機(jī)128M字節(jié)以上內(nèi)存2G以上硬盤支持軟件單向衛(wèi)星數(shù)據(jù)接收和處理線程接口只能在Windows 32位操作系統(tǒng)之上運(yùn)行。比如Windows NT4.0或Windows 2000。數(shù)據(jù)說明配置文件dxwx.cfg本軟件運(yùn)行所必需要數(shù)據(jù)文件就是配置文件dxwx.cfg。它的初始產(chǎn)生來源是上海證券交易所。它的存儲(chǔ)位置位于單向衛(wèi)星數(shù)據(jù)接收和處理線程接口的安裝目錄。會(huì)員單位可以按照需要修改它。這個(gè)文件的作用是定義不同數(shù)據(jù)在多點(diǎn)傳送/單點(diǎn)傳送

14、/下的配置參數(shù)。它的格式遵循Windows中INI文件的規(guī)則。為多點(diǎn)傳送通訊接收線程服務(wù)的參數(shù)有:RUNCOMMAND:?jiǎn)?dòng)通訊接收線程標(biāo)志,為0表示不啟動(dòng),為1表示啟動(dòng),不允許使用其他值。INTERFACE:指定會(huì)員單位計(jì)算機(jī)的IP地址。這個(gè)IP地址即可以通過在命令行輸入IPCONFIG獲得,也可通過選擇網(wǎng)絡(luò)協(xié)議TCP/IP的屬性來得到。PORT:上海證券交易所指定通訊接收線程使用的UDP端口。如果安裝單向衛(wèi)星通訊接收和數(shù)據(jù)處理接口的計(jì)算機(jī)同時(shí)也支持其他服務(wù),請(qǐng)查詢會(huì)員單位自身的網(wǎng)絡(luò)管理員,確保這臺(tái)接口計(jì)算機(jī)沒有占用上海證券交易所指定的UDP端口。WANTTIMEOUT:超時(shí)出錯(cuò)的上限數(shù)值。

15、缺省為-1,表示無超時(shí)限制;20表示為20秒超時(shí)限制,即如果20秒內(nèi)通訊接收線程都沒有接收到單向衛(wèi)星廣播來的任何數(shù)據(jù),通訊接收線程將退出。DCLASSIPADD:上海證券交易所指定的一個(gè)D類的廣播地址。 在沒有更新衛(wèi)星設(shè)備時(shí),不必修改這個(gè)值。多點(diǎn)傳送包括行情數(shù)據(jù)、文件數(shù)據(jù)、短消息數(shù)據(jù)。在一個(gè)IP地址為172.18.17.52的機(jī)器上,配置文件中多點(diǎn)傳送行情數(shù)據(jù)參數(shù)設(shè)定的示例如下:CONFIGMULTICAST_HQRUNCOMMAND=0PORT = 3456WANTIMEOUT = -1 為單點(diǎn)傳送通訊接收線程服務(wù)的參數(shù)有:RUNCOMMAND:?jiǎn)?dòng)通訊接收線程標(biāo)志,為0表示不啟動(dòng),為1表示

16、啟動(dòng),不允許使用其他值。INTERFACE:指定通訊接收線程使用的IP地址。這個(gè)IP地址即可以通過在命令行輸入IPCONFIG獲得,也可通過選擇網(wǎng)絡(luò)協(xié)議TCP/IP的屬性來得到。PORT:上海證券交易所指定通訊接收線程使用的UDP端口。如果安裝單向衛(wèi)星通訊接收和數(shù)據(jù)處理接口的計(jì)算機(jī)同時(shí)也支持其他服務(wù),請(qǐng)查詢會(huì)員單位自身的網(wǎng)絡(luò)管理員,確保這臺(tái)接口計(jì)算機(jī)沒有占用上海證券交易所指定的UDP端口。WANTTIMEOUT:超時(shí)出錯(cuò)的上限數(shù)值。缺省為-1,表示無超時(shí)限制;20表示為20秒超時(shí)限制,即如果20秒內(nèi)通訊接收線程都沒有接收到單向衛(wèi)星廣播來的任何數(shù)據(jù),通訊接收線程將退出。單點(diǎn)傳送包括成交回報(bào)數(shù)據(jù)、

17、文件數(shù)據(jù)、短消息數(shù)據(jù)。在一個(gè)IP地址為172.18.17.52的機(jī)器上,配置文件中單點(diǎn)傳送成回報(bào)數(shù)據(jù)參數(shù)設(shè)定的示例如下:CONFIGUNICAST_CJRUNCOMMAND= 0PORT = 4001WANTIMEOUT = -1為多/單點(diǎn)傳送數(shù)據(jù)處理線程服務(wù)的參數(shù)有:HQ_RUNCOMMAND: 啟動(dòng)行情數(shù)據(jù)處理線程標(biāo)志,設(shè)為0就使得在程序啟動(dòng)后不啟動(dòng)行情數(shù)據(jù)處理線程,設(shè)為1就使得在程序啟動(dòng)后啟動(dòng)行情數(shù)據(jù)處理線程,不允許使用其他值。HQ_FILEPATH:定義行情數(shù)據(jù)處理線程在收到數(shù)據(jù)后,行情文件的存儲(chǔ)路徑。CJ_RUNCOMMAND: 啟動(dòng)成交回報(bào)數(shù)據(jù)處理線程標(biāo)志,設(shè)為0就使得在程序啟動(dòng)后

18、不啟動(dòng)處理線程,設(shè)為1就使得在程序啟動(dòng)后啟動(dòng)處理線程,不允許使用其他值。CJ_FILENAMEPATH:定義成交回報(bào)數(shù)據(jù)處理線程在收到成交回報(bào)數(shù)據(jù)后,存儲(chǔ)成交回報(bào)文件的文件名。FILE_RUNCOMMAND: 啟動(dòng)文件數(shù)據(jù)處理線程標(biāo)志,設(shè)為0就使得在程序啟動(dòng)后不啟動(dòng)數(shù)據(jù)處理線程,設(shè)為1就使得在程序啟動(dòng)后啟動(dòng)接收線程,不允許使用其他值。FILE_FILEPATH:定義文件數(shù)據(jù)處理線程在收到數(shù)據(jù)后,文件的存儲(chǔ)路徑。MSG_RUNCOMMAND: 啟動(dòng)短消息處理線程標(biāo)志,設(shè)為0就使得在程序啟動(dòng)后不啟動(dòng)處理線程,設(shè)為1就使得在程序啟動(dòng)后啟動(dòng)處理線程,不允許使用其他值。MSG_FILEPATH:定義短消

19、息數(shù)據(jù)處理線程在收到數(shù)據(jù)后,短消息文件的存儲(chǔ)路徑。示例如下: USER_MULTICASTHQ_RUNCOMMAND = 0 HQ_FILEPATH = C:TempokMultiCastHQCJ_RUNCOMMAND = 0 CJ_FILENAMEPATH = C:TempokMultiCastCJCJHB.DBFMSG_RUNCOMMAND = 0MSG_FILEPATH = C:TempokMultiCastMSGFILE_RUNCOMMAND = 1 FILE_FILEPATH = C:TempokMultiCastFILEUSER_UNICASTHQ_RUNCOMMAND = 0 H

20、Q_FILEPATH = C:TempokUniCastHQCJ_RUNCOMMAND = 0 CJ_FILENAMEPATH = C:TempokUniCastCJCJHB.DBFMSG_RUNCOMMAND = 0MSG_FILEPATH = C:TempokUniCastMSGFILE_RUNCOMMAND = 0 FILE_FILEPATH = C:TempokUniCastFILE報(bào)文一個(gè)任務(wù)在整個(gè)傳送過程中被劃分為1個(gè)起始報(bào)文、多個(gè)中間報(bào)文和1個(gè)結(jié)束報(bào)文。每個(gè)報(bào)文的格式如下:表 SEQ 表 * ARABIC 1 報(bào)文格式任務(wù)號(hào)Int4 bytes同一任務(wù)的各個(gè)任務(wù)報(bào)文具有相同流水號(hào)

21、。報(bào)文號(hào)Int 4 bytes啟始報(bào)文的報(bào)文號(hào)為1 (如果整個(gè)任務(wù)僅含一條報(bào)文,那么報(bào)文號(hào)是-1,這時(shí)該報(bào)文同時(shí)作為任務(wù)終止報(bào)文。其后的若干中間報(bào)文報(bào)文號(hào)的值以1為單位遞增,比如從2 開始到(N-1)終止報(bào)文報(bào)文號(hào)的值是(-N)。任務(wù)類型Int 4 bytes該字段現(xiàn)在不被使用! 用戶可以忽略該字段。數(shù)據(jù)體長(zhǎng)度Int4 bytes指定其后附加的數(shù)據(jù)體的以字節(jié)為單位的長(zhǎng)度數(shù)據(jù)體可變長(zhǎng)因?yàn)椴捎肬DP協(xié)議來傳輸數(shù)據(jù), 所以實(shí)際收到的報(bào)文可能會(huì)丟失,造成報(bào)文號(hào)不連續(xù),這些錯(cuò)誤檢測(cè)應(yīng)當(dāng)由數(shù)據(jù)處理線程完成。行情、文件、短消息 任務(wù)起始報(bào)文控制信息行情、文件、短消息這3種任務(wù)實(shí)質(zhì)上就是在不同端口的文件傳送,

22、這些文件在整個(gè)傳送過程中被劃分為1個(gè)起始報(bào)文、多個(gè)中間報(bào)文和1個(gè)結(jié)束報(bào)文。在這3種任務(wù)的起始報(bào)文的實(shí)際數(shù)據(jù)之前,插入了定義文件參數(shù)的控制信息。格式定義如下: 表 SEQ 表 * ARABIC 2 文件類報(bào)文起始控制信息格式文件名稱Char16 bytes文件原長(zhǎng)度Int 4 bytes文件時(shí)間Int 4 bytes文件最后修改時(shí)間,衛(wèi)星接收落地后應(yīng)設(shè)置其于數(shù)據(jù)原端一致。若該值為0,不用修改。暫時(shí)固定為0文件日期Int4 bytes同上壓縮方式Char1 byte0代表不壓縮1代表壓縮方式12代表壓縮方式2目前暫時(shí)固定為0加密方式Char1 byte0代表不加密1代表加密方式12代表加密方式2目

23、前暫時(shí)固定為0寫方式Char1 byte0:任意1:創(chuàng)建 create2:更新 update3:追加 append4:獨(dú)占創(chuàng)建5:獨(dú)占更新6:獨(dú)占追加文件類型Char1 byte0:任意文件1:txt 文件2:dbf 文件3:exe文件暫時(shí)固定為0預(yù)留待定32 bytes文件內(nèi)容的一部分char數(shù)據(jù)體中剩余空間例一:下面是屬于MSG任務(wù)6的各個(gè)報(bào)文的樣例,報(bào)文的內(nèi)容假設(shè)是:“”。任務(wù)號(hào)報(bào)文號(hào)任務(wù)類型數(shù)據(jù)體長(zhǎng)度數(shù)據(jù)體61165 c6211098765432106311001234567896-414abcd表中淺灰色的部分表示任務(wù)啟始報(bào)文的數(shù)據(jù)體的報(bào)文控制信息,指明所傳送的是什么文件,打開方式等

24、等。其中報(bào)文號(hào)是1的那一行是任務(wù)6的任務(wù)起始報(bào)文,報(bào)文號(hào)是2、3的那兩行是任務(wù)傳送報(bào)文,報(bào)文號(hào)是-4的那行是任務(wù)終止報(bào)文。例二:下面是屬于MSG任務(wù)9的各個(gè)報(bào)文的樣例,該任務(wù)只有一個(gè)報(bào)文。報(bào)文的內(nèi)容假設(shè)是:“good night”。任務(wù)號(hào)報(bào)文號(hào)任務(wù)類型數(shù)據(jù)體長(zhǎng)度數(shù)據(jù)體91-174 good night表中淺灰色的部分表示任務(wù)啟始報(bào)文的數(shù)據(jù)體的文件信息結(jié)構(gòu),指明所傳送的是什么文件,打開方式等等。成交回報(bào)數(shù)據(jù)傳送任務(wù)報(bào)文成交回報(bào)數(shù)據(jù)傳送任務(wù)與文件類傳送任務(wù)不同,在頭部不需要與文件有關(guān)的控制信息。并且由于它的長(zhǎng)度是可預(yù)制的,可以在一個(gè)報(bào)文內(nèi)傳送完畢,所以該類任務(wù)由一個(gè)任務(wù)報(bào)文組成,即任務(wù)啟始報(bào)文,同

25、時(shí)也是任務(wù)終止報(bào)文。它的格式如下:成交回報(bào)數(shù)據(jù)流的C語言的結(jié)構(gòu)如下,(long 類型的數(shù)據(jù)需要網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換,利用ntohl() 。short 類型的數(shù)據(jù)需要網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換,利用ntohs() )。typedef struct QBCJ_TAGlonglxh; /成交回報(bào)流水號(hào)longlCJBH; /交易所總成交編號(hào)longlCJSL;/成交數(shù)量longlSCYE;/上次余額 ,用于計(jì)算BCYE = lSCYE +/- lCJSL 。longlSBSJ;/申報(bào)時(shí)間longlCJSJ;/成交時(shí)間longlCJJG;/成交價(jià)格longlTEORDNUM;/主機(jī)的委托合同號(hào)char sGSDM5;/

26、公司代碼char sMJBH5;/馬甲編號(hào)char sGDDM10;/ 股東代碼char sZQDM6; /證券代碼char sSQBH10;/ 申請(qǐng)編號(hào)short LotSize;/積數(shù) 。用于計(jì)算成交金額 = lCJSL * LotSize char cBS;/買賣char remain9 ;QBCJ;表 SEQ 表 * ARABIC 3 成交回報(bào)配置文件CJHB.CFG數(shù)據(jù)格式說明 Field Field Name Type Width Dec 1 GDDM Character 10 2 GDXM Character 8 3 BCRQ Character 8 4 CJBH Numeric

27、 8 5 GSDM Character 5 6 CJSL Numeric 10 7 BCYE Numeric 10 8 ZQDM Character 6 9 SBSJ Character 6 10 CJSJ Character 6 11 CJJG Numeric 8 3 12 CJJE Numeric 12 2 13 SQBH Character 10 14 BS Character 1 15 MJBH Character 5 16 XUHAO Numeric 8 17 TEORDNUM Numeric 8 * Total * 130 注 在CJHB.CFG文件中以下字段:BCRQ 可取當(dāng)?shù)豍

28、C機(jī)日期 。GDXM 沒使用 。BCYE = lSCYE (+/-) lCJSL (+/-)根據(jù)買賣方向 。CJJE = lCJSL * LotSize /1000.0通訊數(shù)據(jù)報(bào)文 8個(gè)數(shù)據(jù)接收端口接收的數(shù)據(jù)結(jié)構(gòu)是統(tǒng)一的。其數(shù)據(jù)結(jié)構(gòu)包含數(shù)據(jù)頭和數(shù)據(jù)體。結(jié)構(gòu)如下:表 SEQ 表 * ARABIC 4 單向衛(wèi)星通訊數(shù)據(jù)報(bào)文結(jié)構(gòu)通訊數(shù)據(jù)報(bào)文數(shù)據(jù)結(jié)構(gòu)通訊數(shù)據(jù)報(bào)文頭PacketID4Bytes任務(wù)號(hào) 。同一任務(wù)有唯一的任務(wù) ,任務(wù)號(hào)是從1,2,3.NSerialNum4Bytes同一任務(wù)號(hào)的數(shù)據(jù)包序號(hào) 。序號(hào)是從1,2,3.N 。-N表示同一任務(wù)號(hào)的數(shù)據(jù)包的結(jié)束。-1表示只有一個(gè)數(shù)據(jù)包。N的絕對(duì)值小于或

29、等于128 。Length4Bytes通訊數(shù)據(jù)報(bào)文體長(zhǎng)度 。長(zhǎng)度=1KSumAllPackets4Bytes單向系統(tǒng)發(fā)送數(shù)據(jù)包記數(shù) 。從1,2,3,4.N 。用戶可以對(duì)接收數(shù)據(jù)包記數(shù) ,兩者差值是丟包數(shù) 。通訊數(shù)據(jù)報(bào)文體業(yè)務(wù)數(shù)據(jù)包 。列如行情 ,成交,消息,文件。其內(nèi)部數(shù)據(jù)結(jié)構(gòu)見3.3.3節(jié),3.3.4節(jié) 。舉例說明例如 port = 3456 使用multicast 發(fā)送行情數(shù)據(jù)文件如下 :1001 1 1000 38888 行情數(shù)據(jù)1001 2 1000 38889 行情數(shù)據(jù)1001 3 1000 38890 行情數(shù)據(jù)1001 4 1000 38891 行情數(shù)據(jù)。1001 -120 875

30、 39007 行情數(shù)據(jù)。共120個(gè)數(shù)據(jù)包 ,-120表示任務(wù)號(hào)1001的任務(wù)報(bào)文結(jié)束 。1001表示發(fā)送一次完整的行情數(shù)據(jù)的任務(wù)號(hào) ,38888到39007數(shù)值表示主機(jī)在3456通訊口的發(fā)送數(shù)據(jù)包的記數(shù) ??梢酝ㄟ^此值減去內(nèi)部接收記數(shù)得到衛(wèi)星通信線路的落包數(shù) 。注意:1 如果任務(wù)號(hào)(PacketID)1001的數(shù)據(jù)包的序號(hào)(SerialNum)不連續(xù),將任務(wù)號(hào)1001數(shù)據(jù)包作為落包處理 。2 如果任務(wù)號(hào)(PacketID)1001的數(shù)據(jù)包沒有結(jié)束序號(hào),而有新的任務(wù)號(hào)(PacketID)數(shù)據(jù)包 ,將任務(wù)號(hào)(PacketID)1001數(shù)據(jù)包作為落包處理 。3通訊數(shù)據(jù)報(bào)文體的業(yè)務(wù)數(shù)據(jù)使用3.3.2

31、, 3.3.3, 3.3.4所描述的協(xié)議。處理邏輯如下 :if ( First) Start.PacketID = Input.PacketID ;Start.SerialNum = 1 ;First=FALSE ;BUFFER = NULL ;if (Start.PacketID = Input.PacketID ) if ( abs(Input.SerialNum ) = Start.SerialNum ) Start.SerialNum + ;/*數(shù)據(jù)處理 BUFFER */。if ( Input.SerialNum =1While(TRUE)從環(huán)形隊(duì)列中取出下一個(gè)報(bào)文Pprevtask

32、 = currtask;prevnum = currnum;currtask = P的任務(wù)號(hào)currnum = P的報(bào)文號(hào)if(currtask 不等于 prevtask )/ 判斷是否新任務(wù)!If( (P的報(bào)文號(hào)是1或-1)/是新任務(wù)的任務(wù)起始報(bào)文解讀數(shù)據(jù)體,根據(jù)要求產(chǎn)生并打開文件F向F寫入任務(wù)起始報(bào)文中包含的文件內(nèi)容else If( (P的報(bào)文號(hào)不是1或-1)/ 沒找到任務(wù)起始報(bào)文!是一種錯(cuò)誤記下本次任務(wù)發(fā)生了該種錯(cuò)誤continueelse/ currtask 等于 prevtask, 還在同一個(gè)任務(wù)中if(該任務(wù)的處理過程中已發(fā)現(xiàn)有出錯(cuò)現(xiàn)象)continue;/忽略P,不寫入文件if(

33、P的任務(wù)號(hào)的絕對(duì)值與前一個(gè)包的任務(wù)號(hào)相比是連續(xù)的)/ 正確,符合規(guī)范將P數(shù)據(jù)體寫入文件Felse/ 不正確記下本次任務(wù)發(fā)生了該種錯(cuò)誤continue;if(P是任務(wù)終止報(bào)文)關(guān)閉文件F/ end of while出錯(cuò)處理和恢復(fù)運(yùn)行過程中可能會(huì)出現(xiàn)下列錯(cuò)誤信息,本節(jié)列出針對(duì)這些出錯(cuò)請(qǐng)情況,給出恢復(fù)方法。表 6 出錯(cuò)處理英文錯(cuò)誤信息中文含義解決方法The windows platform should be winnt or win2000操作系統(tǒng)必須是win nt 或 win2000選擇安裝winnt 或 win2000的機(jī)器運(yùn)行。Can not start WSAStartup()不能啟動(dòng)Wi

34、ndows Socket因?yàn)椴僮飨到y(tǒng)的網(wǎng)絡(luò)協(xié)議安裝或者配置有誤,請(qǐng)咨詢本營(yíng)業(yè)部網(wǎng)絡(luò)管理員。Windows sockets dll is not of version 2.2Windows socket 動(dòng)態(tài)連接庫的版本不是2.2以上因?yàn)椴僮飨到y(tǒng)的TCP/IP 驅(qū)動(dòng)程序版本不夠,請(qǐng)本營(yíng)業(yè)部網(wǎng)絡(luò)管理員協(xié)助安裝2.2以上的Windows Socket驅(qū)動(dòng)。The low level function does not exist底層函數(shù)不存在同上The length of IP address %s is not correct. It is %d bytes now!IP地址長(zhǎng)度不對(duì)。配置文件dx

35、wx.cfg中的INTERFACE參數(shù)設(shè)置不正確。請(qǐng)輸入ipconfig或咨詢本營(yíng)業(yè)部網(wǎng)絡(luò)管理員獲得正確的IP地址,然后修改dxwx.cfgCan not recognize IP address %sIP地址格式不對(duì)。同上Class D IP %s is not correctD類廣播地址不對(duì)配置文件dxwx.cfg中的DCLASSIPADD參數(shù)設(shè)置不正確。請(qǐng)咨詢上海證券交易所通信公司獲得正確的地址,然后修改dxwx.cfgCan not create network event不能創(chuàng)建網(wǎng)絡(luò)事件內(nèi)部嚴(yán)重錯(cuò)誤,發(fā)生的原因可能是系統(tǒng)資源不夠,請(qǐng)重新啟動(dòng)系統(tǒng)再試。Can not reuse ip,

36、 the error code is %d不能重用IP同上Can not bind to address, the error code is %d不能綁定地址端口可能已經(jīng)被占用,請(qǐng)檢查配置文件中定義的端口是否已經(jīng)被其他應(yīng)用程序占用。Can not set TTL, the error code is %d不能設(shè)定TTL網(wǎng)絡(luò)嚴(yán)重錯(cuò)誤,請(qǐng)重新啟動(dòng)系統(tǒng)再試。Can not join into IP group address %s, the error code is %d不能加入IP分組同上Can not get data buffer to write得不到用來寫入數(shù)據(jù)的緩沖內(nèi)部嚴(yán)重錯(cuò)誤,發(fā)生的原因可能是系統(tǒng)資源不夠,請(qǐng)重新啟動(dòng)系統(tǒng)再試。WSARecvFrom() return error code %dWindows Socket接收函數(shù)報(bào)錯(cuò)網(wǎng)絡(luò)錯(cuò)誤,請(qǐng)重新啟動(dòng)系統(tǒng)再試。No data received on port %d for a long time, WAN timeout端口%d上長(zhǎng)時(shí)間沒有收到數(shù)據(jù),超時(shí)出錯(cuò)。單

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論