一个简单的ACE网络库Server和Client Demo
1.Server
#include "iostream"
#include "ace\INET_Addr.h"
#include "ace\SOCK_Stream.h"
#include "ace\SOCK_Acceptor.h"
#include "ace\Time_Value.h"
using namespace std;
int main(int argc, char *argv[])
{
ACE_INET_Addr addr(556, "192.168.60.65");
ACE_SOCK_Stream stream;
ACE_SOCK_Acceptor accepter;
ACE_Time_Value timevalue(10);
accepter.open(addr);
if (accepter.accept(stream, 0, &timevalue) == -1)
{
return 0;
}
char message[1024] = { 0 };
int ret = stream.recv(message, 1024, &timevalue);
cout << "Client:" << endl << message << endl;
memset(message, 0, 1024);
strcpy_s(message, "hello ace clent");
ret = stream.send(message, strlen(message));
return 0;
}
2.Client
#include "iostream"
#include "ace\INET_Addr.h"
#include "ace\SOCK_Stream.h"
#include "ace\SOCK_Connector.h"
#include "ace\Time_Value.h"
using namespace std;
int main(int argc, char *argv[])
{
ACE_INET_Addr addr(556, "192.168.60.65");
ACE_SOCK_Stream stream;
ACE_SOCK_Connector conn;
ACE_Time_Value timevalue;
int ret = conn.connect(stream, addr, &timevalue);
if (ret == -1 && errno == EWOULDBLOCK)
{
timevalue = ACE_Time_Value(6);
ret = conn.complete(stream, &addr, &timevalue);
}
if (ret == -1)
{
cout << "connect failed" << endl;
return 0;
}
char message[1024] = "hello ace server";
ret = stream.send(message, strlen(message));
memset(message, 0, 1024);
timevalue = ACE_Time_Value(6);
ret = stream.recv(message, 1024, &timevalue);
cout << "Server:" << endl << message << endl;
return 0;
}