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

FreeBSD Manual Pages

  
 
  

home | help
FBB::ClientSocket(3bobcat)	 Client	Socket	    FBB::ClientSocket(3bobcat)

NAME
       FBB::ClientSocket  - Client Socket connecting to	a Server in the	Inter-
       net

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

DESCRIPTION
       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::os-
       tream  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::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.

       A   Unix	  Domain  client  socket  can  be  defined  using  FBB::Local-
       ClientSocket.

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

INHERITS FROM
       FBB::SocketBase

CONSTRUCTOR
       o      ClientSocket(std::string const &host, uint16_t port):
	      This  constructor	 initializes an	FBB::ClientSocket object, pre-
	      paring it	for a connection to the	specified port	at  the	 given
	      host.   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() (see  below)  should  be	 used.
	      The copy constructor is not available.

MEMBER FUNCTIONS
       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::Exception exception is	thrown
	      if the connection	could not be established or if the  SocketBase
	      base class could not properly be constructed.

EXAMPLE
       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)
	   try
	   {
	       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 (Exception const &err)
	   {
	       cerr << err.what() << "\n" <<
		       "Can't connect to " << argv[1] << ", port " <<
		       argv[2] << endl;
	       return 1;
	   }

FILES
       bobcat/clientsocket - defines the class interface

SEE ALSO
       bobcat(7), ifdstream(3bobcat), ifdstreambuf(3bobcat), inetaddress(3bob-
       cat), localclientsocket(3bobcat),  ofdstream(3bobcat),  ofdstream(3bob-
       cat), serversocket(3bobcat), socketbase(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::ClientSocket(3bobcat)

NAME | SYNOPSIS | DESCRIPTION | NAMESPACE | INHERITS FROM | CONSTRUCTOR | MEMBER FUNCTIONS | 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=clientsocket&sektion=3bobcat&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help