Нужно создать socks5 клиент принимает данные потом их передаёт. Сервер их принимает и выводит все ссылки которые ему поступили. Когда одиночно... - вопрос №1007328

открываешь ссылки в браузере клиент нормально их принимает и передаёт серверу. Сервер выводит что нужно. Но вот когда открываешь браузер и там закреплено 15-20 ссылок сервер принимает не все. Много пустых строк. С чем это может быть связано? где проблема на сервере или на клиенте? Как это исправить? Клиент:

Код C# 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Windows.Forms;

using System.Net;
using System.Net.Sockets;

namespace client
{
public class client
{
public int status_client; //отключение от сервера
static public int identifikator = 1; //проверка первого подключения

public string enter_IP_server = null; //IP весервера

public byte[] message_brau = new byte[256];
public byte[] message = new byte[256];

public void start()
{
Error error = new Error();
client Client = new client();

try
{
IPAddress localAddress = IPAddress.Parse(«127.0.0.1»);
TcpListener listener = new TcpListener(localAddress, 2010);

listener.Start(1);

if (enter_IP_server.Length == 0)
{
error.EnterIP();
}

else
{
while (Client.status_client == 0)
{
// TcpClient client = new TcpClient(«192.168.129.129», 2010);
TcpClient client = new TcpClient(«127.0.0.12», 2010);

NetworkStream io = client.GetStream();

TcpClient client_brau = listener.AcceptTcpClient();
NetworkStream io_brau = client_brau.GetStream();

string data = null;
// zapros(io);
//--------принимает и передаёт данные с браузера
int i = io_brau.Read(message_brau, 0, message_brau.Length);
data = System.Text.Encoding.UTF8.GetString(message_brau, 0, i);

if (data.Length > 5)
{
message = System.Text.Encoding.ASCII.GetBytes(data);
io.Write(message, 0, message.Length);
}

client.Close();
client_brau.Close();
}
}
}
catch (Exception w)
{
error.Connect(w);
}
}

public void zapros(NetworkStream io)
{
Error error = new Error();

string data = null;

byte[] message_write = new byte[256];//отправка
byte[] message_read = new byte[256];//принятие

byte[] buffer = new byte[256];
buffer[1] = 0x05; //номер версии
buffer[2] = 0x01; //количество методов
buffer[3] = 0x00; //номер метода

io.Write(buffer, 0, buffer[1]);

int i = io.Read(message_read, 0, message_read.Length);
data = System.Text.Encoding.UTF8.GetString(message_read, 0, i);
if (data == «Error version SOCKS.»)
{
error.socksVersion();
}
}

}
}

 

сервер:

using System;
using System.Net;
using System.Text;
using System.Net.Sockets;

namespace server
{
class Program
{
//--------запросы
static public byte[] buffer = new byte[256];


static void Main(string[] args)
{

ASCIIEncoding encoding = new ASCIIEncoding();
byte[] message_Read = new byte[256];

string data = null;

byte[] buffer = new byte[256];

try
{
IPAddress localAddress = IPAddress.Parse(«127.0.0.12»);
TcpListener listener = new TcpListener(localAddress, 2010);

listener.Start(1);

while (true)
{

Console.WriteLine(«Сервер ожидает {0}», listener.LocalEndpoint);
TcpClient client = listener.AcceptTcpClient();
NetworkStream io = client.GetStream();

Console.WriteLine(«Принято соединение от {0}», client.Client.RemoteEndPoint);

// zapros(io);
int i = io.Read(message_Read, 0, message_Read.Length);
data = System.Text.Encoding.UTF8.GetString(message_Read, 0, i);
Console.WriteLine(«Принято сообщение от {0}: {1}», client.Client.RemoteEndPoint, data);
Console.WriteLine();

client.Close();
}

}
catch (Exception e)
{
Console.WriteLine(«Произошла ошибка {0}», e.Message);
}
}

static public void zapros(NetworkStream io)
{
buffer[1] = 0x05;
buffer[2] = 0x01;

byte[] message_Read = new byte[256];
byte[] messageError = new byte[256];

io.Read(message_Read, 0, message_Read.Length);

if (message_Read[1] != buffer[1])
{
messageError = System.Text.Encoding.ASCII.GetBytes(«Error version SOCKS.»);
io.Write(messageError, 0, messageError.Length);
Console.WriteLine(«Error version SOCKS.»);
}
else
{
if ((message_Read[3] == 0x00) || (message_Read[3] == 0x01) || (message_Read[3] == 0x02))
{
io.Write(buffer, 0, buffer[1]);
Console.WriteLine(«OK method: {0}», buffer[3]);
}
else
{
//----если метод неверный то отправляем по дефолту
//----без авторизации (0x00)
buffer[3] = 0x00;
io.Write(buffer, 0, buffer[1]);
Console.WriteLine(«Method 0x00»);

}
}
}

}
}

 

 Помоги нужно очень срочно… Буду очень признателен.

29.03.14
0 ответов
Ответов пока нет
Посмотреть всех экспертов из раздела Технологии > .Net/C#
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store