Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FBB::LocalClientSocket(3bobUnix	Domain client SFBB::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:Local-
       ClientSocket may	be used	to initialize a	std::istream  and/or  std::os-
       tream.  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::Lo-
       calClientSocket connects.  Since	a socket may be	considered a file  de-
       scriptor	 the  avaiable	FBB::IFdStream,	 FBB::IFdStreamBuf,  FBB::OFd-
       Stream, and FBB::OFdStreamBuf classes may be used profitably here. Note
       that having available a socket does not mean that this defines the com-
       munication protocol. It is (still) the responsibility of	the programmer
       to  comply with an existing protocol or to implement a tailor-made pro-
       tocol. 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  us-
	      ing the named Unix Domain	socket.	An FBB::Exception is thrown if
	      the socket could not be constructed.  The	 construction  of  the
	      socket  does not mean that a connection has actually been	estab-
	      lished. In order to connect to the server, the member  connect()
	      (see  below) should be used.  The	copy constructor is not	avail-
	      able.

MEMBER FUNCTION
       o      int connect():
	      This member returns a socket that	can  be	 used  to  communicate
	      with  the	 server	process. An FBB::Exception 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::Exception 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 (Exception 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),	  localsocket-
       base(3bobcat), ofdstream(3bobcat), ofdstream(3bobcat)

BUGS
       None Reported.

DISTRIBUTION FILES
       o      bobcat_3.25.01-x.dsc: detached signature;

       o      bobcat_3.25.01-x.tar.gz: source archive;

       o      bobcat_3.25.01-x_i386.changes: change log;

       o      libbobcat1_3.25.01-x_*.deb:   debian  package  holding  the  li-
	      braries;

       o      libbobcat1-dev_3.25.01-x_*.deb: debian package holding  the  li-
	      braries, 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).

libbobcat-dev_3.25.01-x.tar.gz	   2005-2015   FBB::LocalClientSocket(3bobcat)

NAME | SYNOPSIS | DESCRIPTION | NAMESPACE | INHERITS FROM | CONSTRUCTOR | MEMBER FUNCTION | EXAMPLE | FILES | SEE ALSO | BUGS | DISTRIBUTION FILES | BOBCAT | COPYRIGHT | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=localclientsocket&sektion=3bobcat&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help