Listing 2: Client socket class member functions

// file csocket.cpp
#include "stdhead.h"
#include "flsocket.h"
#include "csocket.h"

int 
csocket::set_active(string& host_name, 
   int port_number)
{
   if (host_name.empty())
      return(FALSE);

   if (port_number <= 0)
      return(FALSE);

   client_hostname = host_name;
   client_port = port_number;
   client_init = TRUE;
   return(TRUE);
}

int 
csocket::get_active(string& host_name, 
   int& port_number)
{
   if (host_name.empty())
      return(FALSE);

   host_name = ""; port_number = 0;

   if (!client_init) return(FALSE);

   host_name = client_hostname;
   port_number = client_port;
   return(TRUE);
}

int 
csocket::send_receive(string& sbuf, 
   string& rbuf)
{
   if (!client_init)
      return(FALSE);

   if (sbuf.empty())
      return(FALSE);

   rbuf = "";

   if (!client_connect())
      return(FALSE);

   if (send_data(sbuf) == 0)
      {
      (void)close_socket();
      return(FALSE);
      }

   if (recv_data(rbuf) == 0)
      {
      (void)close_socket();
      return(FALSE);
      }

   (void)close_socket();
   return(TRUE);
}
— End of Listing —