ACE中網路通訊程式設計基本架構

2021-04-20 00:36:50 字數 1791 閱讀 2739

ace_addr是所有ace"位址"類的基類;

如tcp/ip和udp/ip的位址資訊是用ace_inet_addr來表示的方法說明

ace_inet_addr(),set() 通過主機名、ip位址和埠號初始化ace_inet_addr

string_to_addr()               將字串轉換為ace_inet_addr

addr_to_string()               將ace_inet_addr轉換為字串

get_port_number()              返回埠號

get_host_name()                返回主機名

使用ace_inet_addr類,可以避免使用原始sock_addr結構所帶來的麻煩。    

ace_inet_addr類,包裝了網路位址

ace_sock_connector類,扮演主動連線角色,發起通訊連線。連線到遠端的服務。

ace_sock_acceptor類,扮演被動連線角色,等待連線。等待遠端客戶的請求。

ace_sock_stream類,扮演資料通訊角色,傳送和接收資料。完成客戶與服務之間的通訊。

可以完成乙個基於客戶端、伺服器端模型的網路應用的開發。開發者無需了解socket在不同平

台上的實現,記憶眾多並相互關聯的socket apis。    

以下以乙個hello world程式為演示。

客戶端程式。傳送乙個hello world到遠端的伺服器,並接收伺服器返回的資訊,將資訊

列印在螢幕上。

#include

#include

#include

#include

#include

#include

int main( int argc, char* argv )

伺服器端**。接收乙個遠端的連線,將接收到的資訊列印在螢幕上,並將接收到的信

息返回給客戶端。

#include

#include

#include

#include

#include

int main( int argc, char* argv )

××××以上**需要ace庫才能運轉××××

利用ace程式設計的基本框架。

客戶端1 建立位址物件。(ace_inet_addr)

2 建立主動連線物件。(ace_sock_connector)

3 建立資料通訊物件。(ace_sock_stream)

4 設定伺服器位址。(ace_inet_addr::set)

5 將資料通訊物件和位址作為引數傳給主動連線物件,發起主動連線(ace_sock_connector::connect)

6 利用通訊物件接收和傳送資料。(ace_sock_stream::recv和ace_sock_stream::send)

伺服器端

1 建立位址物件。(ace_inet_addr)

2 建立被動連線物件。(ace_sock_connector)

3 建立資料通訊物件。(ace_sock_stream)

4 設定伺服器位址。(ace_inet_addr::set)

5 將位址作為引數傳給被動連線物件,啟動接收(ace_sock_acceptor::open)

6 將資料通訊物件傳給被動連線物件,啟動接收,接受連線(ace_sock_connector::accept)

7 利用通訊物件接收和傳送資料。(ace_sock_stream::recv和ace_sock_stream::send)

ACE中網路通訊程式設計基本架構

以下以乙個hello world程式為演示。客戶端程式。傳送乙個hello world到遠端的伺服器,並接收伺服器返回的資訊,將資訊 列印在螢幕上。include include include include include include int main int argc,char argv ...

ACE中網路通訊程式設計基本架構

以下以乙個hello world程式為演示。客戶端程式。傳送乙個hello world到遠端的伺服器,並接收伺服器返回的資訊,將資訊 列印在螢幕上。include include include include include include int main int argc,char ar 伺服...

ACE網路通訊庫的配置

3.具體步驟 在ace目錄下新增config.h檔案 在此檔案中新增 include ace config win32.h 可選的配置有 define ace has winnt4 0 os不是nt4.0或以後版本 define ace has standard cpp library 1 使用標準...