如何通过代理将我的程序连接到服务器?

时间:2017-04-10 18:53:01

标签: c#

我会让我的代码。它是关于连接到Sb0t-Server的客户端:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Runtime.InteropServices;
namespace Antiban
{
public partial class Form1 : Form
{
    public Socket Socket;
    public System.Net.Sockets.NetworkStream Stream;
    public byte[] AvatarStream;

    public Form1()
    {
        InitializeComponent();
    }

    public void ConectarBot(IPAddress ip, int puerto)
    {
        Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

        label1.Text = "Conectando... por favor espera...";

        try
        {
            Socket.Connect(new IPEndPoint(ip, Convert.ToInt32(puerto)));
        }

        catch(Exception ex)
        {

        }
        if (Socket.Connected == true)
        {
            label1.Text = "Conectado. Iniciando protocolo";

            Socket.Send(MSG_CHAT_CLIENT_LOGIN());

            label1.Text = "Conectado!";
        }
    }

    public byte[] MSG_CHAT_CLIENT_LOGIN()
    {
        List<byte> buffer = new List<byte>();
        buffer.AddRange(new byte[] { 2 });
        buffer.AddRange(Guid.NewGuid().ToByteArray());
        buffer.AddRange(BitConverter.GetBytes(Convert.ToInt16(666)));
        buffer.AddRange(new byte[] { 0 });
        buffer.AddRange(BitConverter.GetBytes(Convert.ToInt16(5555)));
        buffer.AddRange(new byte[]
        {
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0,
            0
        });
        buffer.AddRange(Encoding.UTF8.GetBytes(textBox1.Text));
        buffer.AddRange(new byte[] { 0 });
        buffer.AddRange(Encoding.UTF8.GetBytes("Antiban by Narciso"));
        buffer.AddRange(new byte[]
        {
            0,
            127,
            0,
            0,
            1,
            6,
            6,
            6,
            6,
            0,
            0,
            0,
            0,
            20,
            1,
            69
        });
        buffer.AddRange(Encoding.UTF8.GetBytes("Ares"));
        buffer.AddRange(new byte[] { 0 });
        buffer.InsertRange(0, BitConverter.GetBytes(Convert.ToInt16(buffer.Count - 1)));
        return buffer.ToArray();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        string i = textBox2.Text;
        string p = textBox3.Text;

        ConectarBot(System.Net.IPAddress.Parse(i), int.Parse(p));
    }

    private void button2_Click(object sender, EventArgs e)
    {
        List<byte> buffer = new List<byte>();
        buffer.AddRange(new byte[] { 10 });
        buffer.AddRange(Encoding.UTF8.GetBytes(textBox4.Text));
        buffer.InsertRange(0, BitConverter.GetBytes(Convert.ToInt16(buffer.Count - 1)));
        Socket.Send(buffer.ToArray());

        textBox4.Clear();
    }
}

}

我必须添加什么才能连接到Sb0t-Server槽代理? 一些想法?

我认为必须首先连接到代理而不是服务器。但我不知道我该怎么做。

谢谢:)

1 个答案:

答案 0 :(得分:0)

如果您不确定步骤,请尝试查看以下帖子。

Here

  
      
  1. 连接到代理。
  2.   
  3. 问题CONNECT Host:Port HTTP/1.1<CR><LF>
  4.   
  5. 问题<CR><LF>
  6.   
  7. 等待回复。如果它包含HTTP/1.X 200,则连接成功。
  8.   
  9. 阅读更多回复,直到收到空行。
  10.   
  11. 现在,您通过代理连接到外部世界。做你想要的任何数据交换。
  12.