Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Vla00
8 / 8 / 10
Регистрация: 06.10.2012
Сообщений: 581
1

Принятие ссылок и передача их серверу

29.03.2014, 21:09. Просмотров 356. Ответов 2
Метки нет (Все метки)

Нужно создать socks5 клиент принимает данные потом их передаёт. Сервер их принимает и выводит все ссылки которые ему поступили.
Когда одиночно открываешь ссылки в браузере клиент нормально их принимает и передаёт серверу. Сервер выводит что нужно.
Но вот когда открываешь браузер и там закреплено 15-20 ссылок сервер принимает не все. Много пустых строк. С чем это может быть связано? где проблема на сервере или на клиенте? Как это исправить?
Клиент:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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();
            }
        }
 
    }
}
сервер:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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");
 
                }
            }
        }
 
    }
}
Помоги нежно очень срочно... Буду очень признателен.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2014, 21:09
Ответы с готовыми решениями:

Передача и принятие объекта List<string> через StreamWriter и StreamReader
Имеется 2 программы: клиент и сервер. Сообщения строковые передаются без проблем, все получается, а...

Передача архива от клиента к серверу
Клиент скачивает файлы .txt затем их изменяет, но это всё понятно, а ещё нужно что бы клиент...

Передача нескольких файлов мультипоточному серверу
Доброго времени суток! Имеется следующий код мультипоточного(?) сервера и клиента на С# Сервер:...

Передача двух переменных разного типа с клиента серверу
Хочу передать переменную типа float и строку типа string с асинхронного клиента на сервер, а затем...

ICallbackEventHandler, передача данных от клиента серверу
Здравтвуйте, в ASP.NET(Ajax) Используется интерфейс ICallbackEventHandler для передачи с сервера...

2
nio
29.03.2014, 22:47
  #2

Не по теме:

Цитата Сообщение от Vla00 Посмотреть сообщение
Помоги нежно
я как самый исполнительный модератор, готов помочь нежно, но при следующих условиях: ты - девушка, тебе не меньше 18, и чтобы не больше 2 суток ехать, а то срочно не получится :)

0
Vla00
8 / 8 / 10
Регистрация: 06.10.2012
Сообщений: 581
29.03.2014, 22:50  [ТС] 3
)))
Ну бывают опечатки. Особенно когда сидишь в поисках исправления ошибки и мозг пытается разобраться в чём же причина.)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2014, 22:50

Передача переменных от клиента серверу внутри процедуры на клиенте
В общем первое сообщение можно не читать. С этим я более-менее разобрался. Чтобы не создавать новую...

Передача сообщения серверу
Добрый день форумчане! Имеется модуль WiFi(ESP8266) с поднятым на нем TCP сервером. Но ноуте...

Неправильная передача данных от клиента серверу
Пишу программу на клиент-серверной архитектуре. Нужно из клиента передать данные на сервер, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru