FBB::LocalClientSocket(3bobcat)
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 towhile (true)
{// Ask for a textline, stop if empty / nonecout << "? ";
if (!getline(cin, line) || line.length() == 0)return 0;cout << "Line read: " << line << endl;// Return the line to the serverout << line.c_str() << endl;
cout << "wrote line\n";
// Wait for a reply from the servergetline(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'.
COPYRIGHT
This is free software, distributed under the terms of the GNU General
Public License (GPL).
AUTHOR
- Frank B. Brokken (f.b.brokken@rug.nl).