Технологии
Нужно создать 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, 2014 г.
-
Всего ответов: 0