图3-14 Echo服务器的SOCK SAP修订版
#include <ace/INET_Addr.h>
#include <ace/SOCK_Acceptor.h>
#include <ace/SOCK_Stream.h>
#include <iostream>
int sserver(ACE_INET_Addr addr)
{
// Initialize the passive mode server.
ACE_SOCK_Acceptor acceptor(addr);
// Data transfer object.
ACE_SOCK_Stream peer_stream;
// Client remote address object.
ACE_INET_Addr peer_addr;
// Accept a new connection.
std::cout<<"waiting connecting~~";
if (acceptor.accept (peer_stream, &peer_addr) != -1)
{
std::cout<<"a new connected";
std::cout<<peer_addr.get_host_name();
char buf[BUFSIZ];
for (; peer_stream.recv (buf, sizeof buf);)
// Handles "short-writes."
peer_stream.send_n(buf, sizeof buf);
// Remainder omitted.
}
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
ACE_INET_Addr temp("13000","127.0.0.1");
sserver(temp);
return 0;
}