rudesocket如何使用_c++ socket 客户端库 socks5 客户端 RudeSocket™ Open Source C++ Socket Library...

介绍

一个c++ socket 客户端库

The RudeSocket™ Open Source C++ Socket Library provides a simple to use interface for creating and using client sockets. You can connect to the destination server through an unlimited number of chainable proxies, SOCKS4 and SOCKS5 servers if anonymity or security is a priority. Supports SSL

The library is currently available for linux development environments.

Features:

SSL Support (Linux and Windows)

Supports Sockes 4, Socks 5, HTTP Proxy

Like all RudeServer Libraries: Simple and Easy to use.

Open Source and Free

Platform Independent Interface

[1] - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)

用法

General UsageSocket *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 UsageSocket *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 ConnectionsSocket *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 checkingSocket *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

Constructor

Destructor

Method Summary

bool

Closes the connection

bool

Connects to the specified server and port

bool

Connects to the specified server and port over a secure connection

const char*

Returns a description of the last known error

bool

Inserts a CONNECT-Enabled HTTP proxy into the connect chain

bool

Inserts a Socks4 server into the connect chain

bool

Inserts a Socks5 server into the connect chain

bool

Inserts a transparent tunnel into the connect chain

int

Reads a buffer of data from the connection

const char*

Reads a line from the connection

const char*

Reads everything available from the connection

int

Sends a buffer of data over the connection

bool

Sends a null terminated string over the connection

void

Sets an output stream to receive realtime messages about the socket

void

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.

编译:

官方原版源码下载:点击下载

删除socket_platform.h文件包含 #include 的代码,以防止重写义的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值