localclientsocket.3bobcat

Langue: en

Version: 339893 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

FBB::LocalClientSocket - Client Socket connecting to a Server in the Unix Domain

SYNOPSIS

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

DESCRIPTION

An FBB::LocalClientSocket may be constructed to connect to a server process in the Unix Domain. The socket made available by the FBB:LocalClientSocket 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::LocalClientSocket connects, The std::ostream is used to send information to the server process to which the FBB::LocalClientSocket 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.

NAMESPACE

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

INHERITS FROM

FBB::LocalSocketBase

CONSTRUCTOR

o
LocalClientSocket():
This constructor merely creates a FBB::LocalClientSocket object. Before it can be used, its open() member must be called.
o
LocalClientSocket(std::string const &name):
This constructor initializes an FBB::LocalClientSocket object, using the named Unix Domain socket to connect to the server using the named Unix Domain socket. 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 available.

MEMBER FUNCTION

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.
o
open(std::string const &name):
This member function prepares the FBB::LocalClientSocket object, constructed earlier using the default constructor, for use. The named Unix Domain socket is used to connect to the server using the named Unix Domain socket. 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() should be used.

EXAMPLE

See also the localserversocket(3bobcat) example.
 
     #include <iostream>
     #include <bobcat/localclientsocket>
     #include <bobcat/ifdstream>
     #include <bobcat/ofdstream>
     
     using namespace std;
     using namespace FBB;
     
     int main(int argc, char **argv)
     try
     {
         if (argc == 1)
         {
             cerr << "Provide filename representing the unix domain socket\n";
             return 1;
         }
     
         LocalClientSocket client(argv[1]);
         int fd = client.connect();
         string line;
     
         cout << "Connecting to socket " << fd << endl;
     
         IFdStream in(fd);                 // stream to read from        
         OFdStream out(fd);                // stream to write to
     
         while (true)
         {
                                     // Ask for a textline, stop if empty / none
             cout << "? ";                   
             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";
     
                                     // Wait for a reply from the server
             getline(in, line);
             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;
     }
         
 

FILES

bobcat/localclientsocket - defines the class interface

SEE ALSO

bobcat(7), ifdstream(3bobcat), ifdstreambuf(3bobcat), clientsocket(3bobcat), localserversocket(3bobcat), localsocketbase(3bobcat), ofdstream(3bobcat), ofdstream(3bobcat)

BUGS

None Reported.

DISTRIBUTION FILES

o
bobcat_2.08.01-x.dsc: detached signature;
o
bobcat_2.08.01-x.tar.gz: source archive;
o
bobcat_2.08.01-x_i386.changes: change log;
o
libbobcat1_2.08.01-x_*.deb: debian package holding the libraries;
o
libbobcat1-dev_2.08.01-x_*.deb: debian package holding the libraries, headers and manual pages;
o
http://sourceforge.net/projects/bobcat: public archive location;

BOBCAT

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 (GPL).

AUTHOR

Frank B. Brokken (f.b.brokken@rug.nl).