使用基本的ace类通信 c/s

正在学习ACE,在http://www.oschina.net/code/snippet_102078_2515中,已经将代码贴出,

实现采用ACE的基本socket相关类。

server端代码: #include <ace/SOCK_Acceptor.h> #include <ace/INET_Addr.h> #include <ace/SOCK_Stream.h> int main(int argc, char *argv[]) { ACE_SOCK_Acceptor acceptor; ACE_SOCK_Stream peer; ACE_INET_Addr peer_addr; char buf[100]; char sendbuf[100]; memset(buf,0,100); memset(sendbuf,0,100); strcpy(sendbuf,"shawn's server"); if(-1 == peer_addr.set(10000)) return 1; if(-1 == acceptor.open(peer_addr)) return 1; for(;;) { if( -1 == acceptor.accept(peer)) continue; peer.recv(buf,sizeof(buf)); printf("%s/n",buf); peer.send(sendbuf,sizeof(sendbuf)); peer.close(); } return 0; } client端代码: #include <ace/Log_Msg.h> #include <ace/OS_main.h> #include <ace/INET_Addr.h> #include <ace/SOCK_Connector.h> #include <ace/SOCK_Stream.h> using namespace std; int main(int argc, char *argv[]) { ACE_SOCK_Connector connector; ACE_SOCK_Stream peer; ACE_INET_Addr peer_addr; char buf[100]; memset(buf,0,100); strcpy(buf,"shawn's client"); if(-1 == peer_addr.set(10000,"192.168.1.56",1,AF_INET)) return 1; if(-1 == connector.connect(peer,peer_addr)) return 1; if(-1 == peer.send(buf,sizeof(buf))) return 1; _sleep(1000); for(ssize_t n;(n=peer.recv(buf, sizeof(buf))) > 0;) printf("%s/n",buf); if(-1 == peer.close()) return 1; getchar(); return 0; } 具体配置过程,在ACE网站上有很明确的说明。 

你可能感兴趣的:(使用基本的ace类通信 c/s)