• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 58,  comments - 75,  trackbacks - 0

            o_ACE IPC.jpg

            ??? ACE_IPC_SAP類是IPC類族的基類,封裝了句柄,提供了訪問(wèn)句柄的基本接口,基本結(jié)構(gòu)
            如下
            class ACE_IPC_SAP
            {
            public:
            ? int enable (int value) const;
            ? int disable (int value) const;

            ? ACE_HANDLE get_handle (void) const;
            ? void set_handle (ACE_HANDLE handle);

            protected:
            ? ACE_IPC_SAP (void);
            ? ~ACE_IPC_SAP (void);

            private:
            ? ACE_HANDLE handle_;
            };

            ??? ACE_SOCK類是使用Socket的基類,所有使用Socket通訊的類都從這個(gè)類派生。本類的功
            能包括
            ??? 1 創(chuàng)建和銷毀Socket句柄
            ??? 2 獲取本地和遠(yuǎn)端的網(wǎng)絡(luò)地址
            ??? 3 設(shè)置和讀取Socket選項(xiàng)。
            基本結(jié)構(gòu)如下
            class ACE_SOCK : public ACE_IPC_SAP
            {
            public:
            ? //設(shè)置Socket的屬性,包裝了setsockopt系統(tǒng)函數(shù)
            ? int set_option (int level,
            ????????????????? int option,
            ????????????????? void *optval,
            ????????????????? int optlen) const;
            ? //獲取Socket的屬性,包裝了getsockopt系統(tǒng)函數(shù)
            ? int get_option (int level,
            ????????????????? int option,
            ????????????????? void *optval,
            ????????????????? int *optlen) const;
            ? //獲得本地地址
            ? int get_local_addr (ACE_Addr &) const;
            ? //獲取遠(yuǎn)端地址
            ? int get_remote_addr (ACE_Addr &) const;
            ? //關(guān)閉Socket
            ? int close (void);
            ? //打開(kāi)一個(gè)Socket,沒(méi)有Qos
            ? int open (int type,
            ??????????? int protocol_family,
            ??????????? int protocol,
            ??????????? int reuse_addr);
            ? //打開(kāi)一個(gè)Socket,有Qos
            ? int open (int type,
            ??????????? int protocol_family,
            ??????????? int protocol,
            ??????????? ACE_Protocol_Info *protocolinfo,
            ??????????? ACE_SOCK_GROUP g,
            ??????????? u_long flags,
            ??????????? int reuse_addr);

            protected:
            ? ACE_SOCK (int type,
            ??????????? int protocol_family,
            ??????????? int protocol = 0,
            ??????????? int reuse_addr = 0);
            ? ACE_SOCK (int type,
            ??????????? int protocol_family,
            ??????????? int protocol,
            ??????????? ACE_Protocol_Info *protocolinfo,
            ??????????? ACE_SOCK_GROUP g,
            ??????????? u_long flags,
            ??????????? int reuse_addr);
            ? ACE_SOCK (void);
            ? ~ACE_SOCK (void);
            };

            ??? ACE_SOCK_IO類,包裝了Socket數(shù)據(jù)通訊的基本方法。本類提供的功能
            ??? 1 支持?jǐn)?shù)據(jù)的發(fā)送和接收
            ??? 2 支持分散讀操作
            ??? 3 支持集中寫操作
            ??? 4 支持阻塞,非阻塞,定時(shí) I/O操作
            基本結(jié)構(gòu)如下
            class ACE_SOCK_IO : public ACE_SOCK
            {
            public:
            ? ACE_SOCK_IO (void);
            ? ~ACE_SOCK_IO (void);

            ? //接收數(shù)據(jù)
            ? ssize_t recv (void *buf,
            ??????????????? size_t n,
            ??????????????? const ACE_Time_Value *timeout = 0) const;
            ? //分散讀操作
            ? ssize_t recv (iovec iov[],
            ??????????????? size_t n,
            ??????????????? const ACE_Time_Value *timeout = 0) const;
            ? //發(fā)送數(shù)據(jù)?????????????
            ? ssize_t send (const void *buf,
            ??????????????? size_t n,
            ??????????????? const ACE_Time_Value *timeout = 0) const;
            ? //集中寫操作
            ? ssize_t send (const iovec iov[],
            ??????????????? size_t n,
            ??????????????? const ACE_Time_Value *timeout = 0) const;
            };

            ??? ACE_SOCK_Stream類,繼承ACE_SOCK_IO類。在ACE_SOCK_IO類提供的功能上,添加了發(fā)送
            和接收剛好n個(gè)字節(jié)的能力。基本結(jié)構(gòu)如下
            class ACE_Export ACE_SOCK_Stream : public ACE_SOCK_IO
            {
            public:
            ? ACE_SOCK_Stream (void);
            ? ACE_SOCK_Stream (ACE_HANDLE h);
            ? ~ACE_SOCK_Stream (void);
            ?
            ? //剛好讀取n個(gè)字節(jié)的數(shù)據(jù)
            ? ssize_t recv_n (void *buf,
            ????????????????? size_t len,
            ????????????????? const ACE_Time_Value *timeout = 0,
            ????????????????? size_t *bytes_transferred = 0) const;
            ? //分散讀剛好n個(gè)字節(jié)操作
            ? ssize_t recvv_n (iovec iov[],
            ?????????????????? int iovcnt,
            ?????????????????? const ACE_Time_Value *timeout = 0,
            ?????????????????? size_t *bytes_transferred = 0) const;
            ? //剛好發(fā)送n個(gè)字節(jié)的數(shù)據(jù)
            ? ssize_t send_n (const void *buf,
            ????????????????? size_t len,
            ????????????????? const ACE_Time_Value *timeout = 0,
            ????????????????? size_t *bytes_transferred = 0) const;
            ? //集中寫剛好n個(gè)字節(jié)操作
            ? ssize_t sendv_n (const iovec iov[],
            ?????????????????? int iovcnt,
            ?????????????????? const ACE_Time_Value *timeout = 0,
            ?????????????????? size_t *bytes_transferred = 0) const;

            ? int close_reader (void);
            ? int close_writer (void);

            ? int close (void);

            ? typedef ACE_INET_Addr PEER_ADDR;
            };

            ??? ACE_SOCK_Acceptor類是一個(gè)工廠類,用來(lái)被動(dòng)產(chǎn)生一個(gè)新的通訊端點(diǎn)。提供如下能力
            ??? 1 接收對(duì)等端的連接
            ??? 2 連接可以通過(guò)阻塞、非阻塞或定時(shí)方式接受。
            基本結(jié)構(gòu)如下
            class ACE_Export ACE_SOCK_Acceptor : public ACE_SOCK
            {
            public:

            ? ACE_SOCK_Acceptor (void);
            ? ACE_SOCK_Acceptor (const ACE_Addr &local_sap,
            ???????????????????? int reuse_addr = 0,
            ???????????????????? int protocol_family = PF_UNSPEC,
            ???????????????????? int backlog = ACE_DEFAULT_BACKLOG,
            ???????????????????? int protocol = 0);
            ? ~ACE_SOCK_Acceptor (void);

            ? //打開(kāi)一個(gè)監(jiān)聽(tīng)
            ? int open (const ACE_Addr &local_sap,
            ??????????? int reuse_addr = 0,
            ??????????? int protocol_family = PF_UNSPEC,
            ??????????? int backlog = ACE_DEFAULT_BACKLOG,
            ??????????? int protocol = 0);

            ? int close (void);
            ? //接受一個(gè)對(duì)等端的連接,產(chǎn)生一個(gè)通訊
            ? int accept (ACE_SOCK_Stream &new_stream,
            ????????????? ACE_Addr *remote_addr = 0,
            ????????????? ACE_Time_Value *timeout = 0,
            ????????????? int restart = 1,
            ????????????? int reset_new_handle = 0) const;
            };

            ??? ACE_SOCK_Connector類是一個(gè)工廠類,用來(lái)主動(dòng)建立一個(gè)新的通訊端。提供的功能如下
            ??? 1 發(fā)起一個(gè)到對(duì)等接受者的連接,并在連接后產(chǎn)生一個(gè)通訊對(duì)象
            ??? 2 連接可以通過(guò)阻塞、非阻塞或定時(shí)方式發(fā)起
            基本結(jié)構(gòu)如下
            class ACE_SOCK_Connector
            {
            public:
            ? ACE_SOCK_Connector (void);
            ? ACE_SOCK_Connector (ACE_SOCK_Stream &new_stream,
            ????????????????????? const ACE_Addr &remote_sap,
            ????????????????????? const ACE_Time_Value *timeout = 0,
            ????????????????????? const ACE_Addr &local_sap = ACE_Addr::sap_any,
            ????????????????????? int reuse_addr = 0,
            ????????????????????? int flags = 0,
            ????????????????????? int perms = 0,
            ????????????????????? int protocol = 0);

            ? //發(fā)起一個(gè)連接
            ? int connect (ACE_SOCK_Stream &new_stream,
            ?????????????? const ACE_Addr &remote_sap,
            ?????????????? const ACE_Time_Value *timeout = 0,
            ?????????????? const ACE_Addr &local_sap = ACE_Addr::sap_any,
            ?????????????? int reuse_addr = 0,
            ?????????????? int flags = 0,
            ?????????????? int perms = 0,
            ?????????????? int protocol = 0);

            ? ~ACE_SOCK_Connector (void);

            ? int complete (ACE_SOCK_Stream &new_stream,
            ??????????????? ACE_Addr *remote_sap = 0,
            ??????????????? const ACE_Time_Value *timeout = 0);
            };

            ??? 以上的類結(jié)構(gòu)是簡(jiǎn)化的,以突出重點(diǎn)功能。要完全了解每個(gè)類,看源代碼。

            posted on 2007-02-24 14:15 walkspeed 閱讀(3888) 評(píng)論(0)  編輯 收藏 引用 所屬分類: ACE Farmeworks

            <2007年12月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            常用鏈接

            留言簿(4)

            隨筆分類(64)

            隨筆檔案(58)

            文章分類(3)

            文章檔案(3)

            相冊(cè)

            收藏夾(9)

            C++零碎

            好友

            搜索

            •  

            積分與排名

            • 積分 - 161954
            • 排名 - 163

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            大伊人青草狠狠久久| 久久久久久久波多野结衣高潮 | 久久久久久夜精品精品免费啦| 久久久这里只有精品加勒比| 中文字幕日本人妻久久久免费| 精品综合久久久久久97超人| 无码国内精品久久人妻麻豆按摩| 97视频久久久| 亚洲欧美日韩精品久久| 少妇精品久久久一区二区三区| 国产福利电影一区二区三区久久久久成人精品综合 | 久久青青草原精品国产软件| 性色欲网站人妻丰满中文久久不卡| 久久综合综合久久97色| 久久久久波多野结衣高潮| 国产三级精品久久| 91精品国产高清久久久久久io| 亚洲精品高清一二区久久| 91精品国产91久久久久久青草| 久久精品天天中文字幕人妻 | 香蕉aa三级久久毛片| 色综合久久中文综合网| 97超级碰碰碰久久久久| 久久亚洲AV无码精品色午夜麻豆 | 亚洲狠狠婷婷综合久久久久| 久久国产色AV免费观看| 久久天天躁狠狠躁夜夜2020一| 青青草国产精品久久| 国产精品久久久久jk制服| 亚洲综合久久久| 亚洲婷婷国产精品电影人久久| 久久精品无码一区二区app| 97久久天天综合色天天综合色hd| 久久免费看黄a级毛片| 性高湖久久久久久久久AAAAA| 国内精品欧美久久精品| 国产AⅤ精品一区二区三区久久| 久久综合久久综合久久| 国产叼嘿久久精品久久| 久久高潮一级毛片免费| 久久久黄片|