Please Help

RudeSocket™ Open Source C++ Socket Library

Version 1.2.0

DETAIL:  FIELD | CONSTR | METHOD Socket
Back to introduction

Class rude::Socket


class rude::Socket

The public interface to the Socket component.
Using the Bridge design pattern, this class forwards all
of its messages to the implementation class - Rude_ConfigImpl.
If you are using windows, you will need to initiate the winsock DLL yourself,
and finish the DLL yourself when you are done using the component.


General Usage

Socket *socket = new Socket();
socket->connect("google.com", 80);
socket->sends("GET / HTTP/1.0\n\n");
const char *response = socket->reads();
cout << response;
socket->close();


SSL Usage

Socket *socket = new Socket();
socket->connectSSL("google.com", 443);
socket->sends("GET / HTTP/1.0\n\n");
const char *response = socket->reads();
cout << response;
socket->close();


Chaining Connections

Socket *socket = new Socket();
socket->insertSocks4("12.34.56.78", 8000, "username");
socket->insertSocks5("12.34.56.78", 8000, "username", "password");
socket->insertProxy("12.34.56.78", 8080);
socket->connectSSL("google.com", 443);
socket->sends("GET / HTTP/1.0\n\n");
const char *response = socket->reads();
cout << response;
socket->close();


Adding Error checking

Socket *socket = new Socket();
if(socket->connectSSL("google.com", 443))
{
  if(socket->sends("GET / HTTP/1.0\n\n"))
  {
    const char *response = socket->reads();
    if(response)
    {
      cout << response;
    }
    else
    {
      cout << socket->getError() << "\n";
    }
  }
  else
  {
    cout << socket->getError() << "\n";
  }
  socket->close();
}
else
{
  cout << socket->getError() << "\n";
}


Constructor Summary
Socket()
          Constructor
~Socket()
          Destructor
 
Method Summary
 bool close()
          Closes the connection
 bool connect( const char* server, int port )
          Connects to the specified server and port
 bool connectSSL( const char* server, int port )
          Connects to the specified server and port over a secure connection
 const char* getError()
          Returns a description of the last known error
 bool insertProxy( const char* server, int port )
          Inserts a CONNECT-Enabled HTTP proxy into the connect chain
 bool insertSocks4( const char* server, int port, const char* username )
          Inserts a Socks4 server into the connect chain
 bool insertSocks5( const char* server, int port, const char* username, const char* password )
          Inserts a Socks5 server into the connect chain
 bool insertTunnel( const char* server, int port )
          Inserts a transparent tunnel into the connect chain
 int read( char* buffer, int length )
          Reads a buffer of data from the connection
 const char* readline()
          Reads a line from the connection
 const char* reads()
          Reads everything available from the connection
 int send( const char* data, int length )
          Sends a buffer of data over the connection
 bool sends( const char* buffer )
          Sends a null terminated string over the connection
 void setMessageStream( std::ostream& o )
          Sets an output stream to receive realtime messages about the socket
 void setTimeout( int seconds, int microseconds )
          Sets the timeout value for Connect, Read and Send operations.
 

Constructor Detail

Socket

public Socket();
Constructor

~Socket

public ~Socket();
Destructor


Method Detail

close

public bool close();
Closes the connection
A connection must established before this method can be called

connect

public bool connect( const char* server, int port );
Connects to the specified server and port
If proxies have been specified, the connection passes through tem first.

connectSSL

public bool connectSSL( const char* server, int port );
Connects to the specified server and port over a secure connection
If proxies have been specified, the connection passes through them first.

getError

public const char* getError();
Returns a description of the last known error

insertProxy

public bool insertProxy( const char* server, int port );
Inserts a CONNECT-Enabled HTTP proxy into the connect chain
Becomes the last server connected to in the chain before connecting to the destination server

insertSocks4

public bool insertSocks4( const char* server, int port, const char* username );
Inserts a Socks4 server into the connect chain
Becomes the last server connected to in the chain before connecting to the destination server

insertSocks5

public bool insertSocks5( const char* server, int port, const char* username, const char* password );
Inserts a Socks5 server into the connect chain
Becomes the last server connected to in the chain before connecting to the destination server


insertTunnel

public bool insertTunnel( const char* server, int port );
Inserts a transparent tunnel into the connect chain
A transparent Tunnel is a server that accepts a connection on a certain port,
and always connects to a particular server:port address on the other side.
Becomes the last server connected to in the chain before connecting to the destination server

read

public int read( char* buffer, int length );
Reads a buffer of data from the connection
A connection must established before this method can be called

readline

public const char* readline();
Reads a line from the connection
A connection must established before this method can be called

reads

public const char* reads();
Reads everything available from the connection
A connection must established before this method can be called

send

public int send( const char* data, int length );
Sends a buffer of data over the connection
A connection must established before this method can be called

sends

public bool sends( const char* buffer );
Sends a null terminated string over the connection
The string can contain its own newline characters.
Returns false and sets the error message if it fails to send the line.
A connection must established before this method can be called


setMessageStream

public void setMessageStream( std::ostream& o );
Sets an output stream to receive realtime messages about the socket

setTimeout

public void setTimeout( int seconds, int microseconds );
Sets the timeout value for Connect, Read and Send operations.
Setting the timeout to 0 removes the timeout - making the Socket blocking.

DETAIL:  FIELD | CONSTR | METHOD Socket
Generated on July 27, 2003 at 02:30