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";
}
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. |
Socket
public Socket();
- Constructor
~Socket
public ~Socket();
- Destructor
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 |
|