Provided by: libbobcat-dev_2.20.01-1_amd64 bug


       FBB::ClientSocket - Client Socket connecting to a Server in the Internet


       #include <bobcat/clientsocket>
       Linking option: -lbobcat


       An FBB::ClientSocket may be constructed to connect to some server process in the internet.
       The socket made available by the FBB:ClientSocket may be used to initialize a std::istream
       and/or  std::ostream. The std::istream is used to read information from the server process
       to which the FBB::ClientSocket connects, The std::ostream is used to send  information  to
       the  server  process  to  which  the  FBB::ClientSocket  connects.   Since a socket may be
       considered   a   file   descriptor   the   avaiable   FBB::IFdStream,   FBB::IFdStreamBuf,
       FBB::OFdStream,  and  FBB::OFdStreamBuf  classes  may  be  used profitably here. Note that
       having available a socket does not mean that this defines the communication  protocol.  It
       is  (still) the responsibility of the programmer to comply with an existing protocol or to
       implement a tailor-made protocol. The latter situation implies that the sequence of input-
       and output operations is defined by the programmer.


       All  constructors,  members,  operators  and manipulators, mentioned in this man-page, are
       defined in the namespace FBB.




       o      ClientSocket(std::string const &host, uint16_t port):
              This constructor initializes  an  FBB::ClientSocket  object,  preparing  it  for  a
              connection to the specified port at the given host.  An FBB::Errno is thrown if the
              socket could not be constructed. The construction of the socket does not mean  that
              a  connection has actually been established. In order to connect to the server, the
              member connect()  (see  below)  should  be  used.   The  copy  constructor  is  not


       All   members  of  FBB::SocketBase  (and  thus  of  FBB::InetAddress)  are  available,  as
       FBB::ClientSocket inherits from these classes.

       o      int connect():
              This member returns a socket that can  be  used  to  communicate  with  the  server
              process.  An  FBB::Errno  exception  is  thrown  if  the  connection  could  not be
              established or if the SocketBase base class could not properly be constructed.


       See also the serversocket(3bobcat) example.

           #include <iostream>
           #include <bobcat/clientsocket>
           #include <bobcat/ifdstream>
           #include <bobcat/ofdstream>
           #include <bobcat/a2x>

           using namespace std;
           using namespace FBB;

           int main(int argc, char **argv)
               if (argc == 1)
                   cerr << "Provide servername and port number\n";
                   return 1;

               size_t     port = A2x(argv[2]);
               ClientSocket client(argv[1], port);
               int fd = client.connect();
               string line;

               cout << "Connecting to socket " << fd << endl <<
                       "address = " << client.dottedDecimalAddress() << ", " <<
                                                                        endl <<
                       "communication through port " << client.port() << endl;

               IFdStream in(fd);                 // stream to read from
               OFdStream out(fd);                // stream to write to

               while (true)
                                           // Ask for a textline, stop if
                   cout << "? ";           // empty / none
                   if (!getline(cin, line) || line.length() == 0)
                       return 0;
                   cout << "Line read: " << line << endl;

                                           // Return the line to the server
                   out << line.c_str() << endl;
                   cout << "wrote line\n";

                   getline(in, line);      // Wait for a reply from the server
                   cout << "Answer: " << line << endl;
               return 0;
           catch (Errno const &err)
               cerr << err.what() << "\n" <<
                       "Can’t connect to " << argv[1] << ", port " <<
                       argv[2] << endl;
               return 1;


       bobcat/clientsocket - defines the class interface


       bobcat(7),      ifdstream(3bobcat),      ifdstreambuf(3bobcat),      inetaddress(3bobcat),
       localclientsocket(3bobcat), ofdstream(3bobcat), ofdstream(3bobcat), serversocket(3bobcat),


       None Reported.


       o      bobcat_2.20.01-x.dsc: detached signature;

       o      bobcat_2.20.01-x.tar.gz: source archive;

       o      bobcat_2.20.01-x_i386.changes: change log;

       o      libbobcat1_2.20.01-x_*.deb: debian package holding the libraries;

       o      libbobcat1-dev_2.20.01-x_*.deb: debian package holding the libraries,  headers  and
              manual pages;

       o public archive location;


       Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.


       This  is  free  software,  distributed  under  the terms of the GNU General Public License


       Frank B. Brokken (