public static socks5.Socks.SocksError SendRequest(Client cli, SocksEncryption enc, string ipOrDomain, int port)
{
AddressType type;
IPAddress ipAddress;
if (!IPAddress.TryParse(ipOrDomain, out ipAddress))
//it's a domain. :D (hopefully).
type = AddressType.Domain;
else
type = AddressType.IP;
SocksRequest sr = new SocksRequest(StreamTypes.Stream, type, ipOrDomain, port);
//send data.
byte[] p = sr.GetData(false);
p[1] = 0x01;
//process data.
cli.Send(enc.ProcessOutputData(p, 0, p.Length));
byte[] buffer = new byte[512];
//process input data.
int recv = cli.Receive(buffer, 0, buffer.Length);
if(recv == -1)
{
return SocksError.Failure;
}
byte[] buff = enc.ProcessInputData(buffer, 0, recv);
return (SocksError)buff[1];
}