天天被操天天被操综合网,亚洲黄色一区二区三区性色,国产成人精品日本亚洲11,欧美zozo另类特级,www.黄片视频在线播放,啪啪网站永久免费看,特别一级a免费大片视频网站

現(xiàn)在位置:范文先生網(wǎng)>理工論文>計(jì)算機(jī)論文>SOCKET 接口編程在期貨交易系統(tǒng)中的應(yīng)用

SOCKET 接口編程在期貨交易系統(tǒng)中的應(yīng)用

時(shí)間:2022-08-06 10:40:03 計(jì)算機(jī)論文 我要投稿
  • 相關(guān)推薦

SOCKET 接口編程在期貨交易系統(tǒng)中的應(yīng)用

SOCKET 接口編程在期貨交易系統(tǒng)中的應(yīng)用

南京河海大學(xué)計(jì)算機(jī)及信息工程學(xué)院  朱涇文

摘要: 本文講述用SOCKET接口編程的原理及使用它實(shí)現(xiàn)交易系統(tǒng)的具體方法。

關(guān)鍵詞:SOCKET 通信 交易

1.交易系統(tǒng)介紹

交易就是用戶對(duì)商品的買與賣。交易系統(tǒng)是通過計(jì)算機(jī)系統(tǒng)來進(jìn)行交易,也就是說,商品的買與賣都是通過計(jì)算機(jī)的網(wǎng)絡(luò)及后臺(tái)進(jìn)程配對(duì)完成,交易核心采用基于內(nèi)存的方式設(shè)計(jì)開發(fā)以達(dá)到最大的交易及查詢響應(yīng)速度。它的設(shè)計(jì)思路是:交易系統(tǒng)的所有數(shù)據(jù)存放在關(guān)系數(shù)據(jù)庫中,但交易核心在啟動(dòng)后與硬盤數(shù)據(jù)不直接通信,而只是在啟動(dòng)時(shí)將交易所需數(shù)據(jù)一次性讀入共享內(nèi)存。這之后的所有交易撮合、生成委托單、交易結(jié)果都是在內(nèi)存中實(shí)現(xiàn)的。當(dāng)交易結(jié)束后,再將交易結(jié)果從內(nèi)存裝回硬盤數(shù)據(jù)庫中,在數(shù)據(jù)庫中實(shí)現(xiàn)交易結(jié)算、整理,產(chǎn)生各種帳目及統(tǒng)計(jì)報(bào)表,同時(shí),再一次完成各種信息的錄入與修改。

交易核心與外界的通信經(jīng)由消息隊(duì)列(MESSAGE QUEUE),交易核心用于交易所使用的數(shù)據(jù)存放共享內(nèi)存(SHARED MEMORY)中,利用SOCKET接口編程來實(shí)現(xiàn).

2.SOCKET的設(shè)計(jì)原理及進(jìn)行通信連接的過程框圖

Socket設(shè)計(jì)在操作系統(tǒng)的核心中,提供一些系統(tǒng)調(diào)用以支持多種通信協(xié)議(如TCP,UDP等等)。當(dāng)要支持一種新的通信協(xié)議時(shí),則需要把核心做一些改變。為了免除改變核心太多而造成不便,可以采用流的模塊方式來添加新的功能,但這種方式并無法完全免除更動(dòng)核心的操作。實(shí)際上,核心的設(shè)計(jì)把網(wǎng)絡(luò)系統(tǒng)分成三個(gè)不同的層,如下圖。

Socket支持3種訪問傳輸系統(tǒng)的接口:其中一種就是同步阻塞方式:使用同步阻塞方式時(shí),Socket庫函數(shù)暫停程序的運(yùn)行,等待傳輸系統(tǒng)完成請(qǐng)求的操作,操作一旦完成,應(yīng)用程序重新獲得控制權(quán)。如下右圖。

3.重要的Socket系統(tǒng)調(diào)用

(1)創(chuàng)建socket- sockets()系統(tǒng)調(diào)用

應(yīng)用程序在使用sockets之前,首先必須擁有一個(gè)sockets,系統(tǒng)調(diào)用sockets()向應(yīng)用程序提供創(chuàng)建sockets的手段,其調(diào)用格式如下:

sockid = socket (int af, int type, int protocol);

(2)指定本地地址-bind()系統(tǒng)調(diào)用

在創(chuàng)建了一個(gè)新的socket號(hào)后,還要用bind()將本地socket地址(包括主機(jī)地址和本地端口號(hào))與所創(chuàng)建的socket號(hào)聯(lián)系起來,其調(diào)用格式如下:

bind (SOCKET sockid, const struct sockaddr FAR* name, int namelen);

(3)listen()系統(tǒng)調(diào)用

該調(diào)用用于面向連接的流socket,表明它愿意接收連接請(qǐng)求。當(dāng)服務(wù)器可能同時(shí)收到幾個(gè)連接請(qǐng)求時(shí),便將連接請(qǐng)求放入請(qǐng)求隊(duì)列。Listen()在accept()之前調(diào)用,其格式為:

listen(SOCKET sockid, int backlog);

(4)建立socket 連接connect()與accept()系統(tǒng)調(diào)用

用于完成整個(gè)關(guān)聯(lián)的建立。connect()的調(diào)用格式如下:

connect (SOCKET sockid, const struct sickaddr FAR*name, int namelen);

(5)發(fā)送數(shù)據(jù)send()和sendto()系統(tǒng)調(diào)用

建立了socket連接后,便可利用上述函數(shù)通過該socket發(fā)送數(shù)據(jù)。其中send()用于面向連接的傳輸,sendto()用于無連接傳輸,調(diào)用格式如下:

send (SOCKET sockid, char FAAR* buf, intbuflen, int flags);

sendto(SOCKET sockid, const char FAR* buf, int len, int flags, const struct sockaddr FAR* to, int tolen);

(6)接收數(shù)據(jù)—recv()和recvfrom()系統(tǒng)調(diào)用接收數(shù)據(jù)系統(tǒng)調(diào)用與發(fā)送數(shù)據(jù)系統(tǒng)調(diào)用是一對(duì)應(yīng)的,其調(diào)用格式也是一一對(duì)應(yīng)。

(7)關(guān)閉socket—closesocket()系統(tǒng)調(diào)用

在完成數(shù)據(jù)傳輸任務(wù)后,需要調(diào)用closesocket()來關(guān)閉連接和釋放socket,其調(diào)用格式如下:

closesocket(SOCKET sockid);


【SOCKET 接口編程在期貨交易系統(tǒng)中的應(yīng)用】相關(guān)文章:

比法在物理中的應(yīng)用08-17

生活中的化學(xué)在教學(xué)中的應(yīng)用08-23

CAI在“光的反射”中的應(yīng)用08-17

內(nèi)部審計(jì)在企業(yè)中的應(yīng)用08-07

反思在語文教學(xué)中的應(yīng)用08-17

內(nèi)部審計(jì)在企業(yè)中的應(yīng)用 論文08-08

比較在數(shù)學(xué)教學(xué)中的應(yīng)用08-17

“探究學(xué)習(xí)”在物理教學(xué)中的應(yīng)用08-17

多媒體在化學(xué)教學(xué)中的應(yīng)用08-15

比較法在物理中的應(yīng)用08-17