Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

TIdConnectionIntercept портит пакеты

57K
12 июня 2010 года
Miatar
3 / / 14.03.2010
Счас пытаюсь сделать прокси на C++ Builder 2010. Все бы хорошо да портит он пакеты. Для теста сделал закругленную систему клиент сервер - когда сервер возвращает клиенту то что от него получил.

Исходник прокси:
Код:
void __fastcall TForm1::IdMappedPortTCP1Connect(TIdContext *AContext)
{
    ListBox1->Items->Add(L"Конект от " + AContext->Binding()->PeerIP);
    AContext->Connection->Intercept = new TIdConnectionIntercept(0);
    AContext->Connection->Intercept->OnReceive = IdConnectionIntercept1Receive;
    AContext->Connection->Intercept->OnSend = IdConnectionIntercept1Send;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdConnectionIntercept1Receive(TIdConnectionIntercept *ASender,
          TBytes &ABuffer)
{
    String z = " : ";
    for (int i = 0; i < ABuffer.Length; i++)
        z += IntToHex((int)ABuffer,2) + L' ';
    OutputDebugStringW(("Пакет от сервера длинной " + IntToStr(ABuffer.Length) + z).c_str());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdConnectionIntercept1Send(TIdConnectionIntercept *ASender,
          TBytes &ABuffer)
{
    String z = " : ";
    for (int i = 0; i < ABuffer.Length; i++)
        z += IntToHex((int)ABuffer,2) + L' ';
    OutputDebugStringW(("Пакет от сервера длинной " + IntToStr(ABuffer.Length) + z).c_str());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdMappedPortTCP1Disconnect(TIdContext *AContext)
{
    if(AContext->Connection->Intercept)
    {
        ListBox1->Items->Add(L"Дисконект от " + AContext->Binding()->PeerIP + L" инициированный клиентом.");
        delete AContext->Connection->Intercept;
        AContext->Connection->Intercept = 0;
    }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::IdMappedPortTCP1OutboundDisconnect(TIdContext *AContext)
{
    if(AContext->Connection->Intercept)
    {
        ListBox1->Items->Add(L"Дисконект от " + AContext->Binding()->PeerIP + L" инициированный сервером.");
        delete AContext->Connection->Intercept;
        AContext->Connection->Intercept = 0;
    }
}
//---------------------------------------------------------------------------


В логе аутпута
 
Код:
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF  
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF  
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF  
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F  
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF  
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F  
Debug Output: Пакет от клиента длинной 71 : 0A 84 88 B2 A9 13 10 7E 5C C3 73 AA 34 C9 1C 38 84 DB F5 07 4A 3B 73 E3 7E E5 F3 9E B7 C5 47 99 2A 52 6B 7B D6 1C F3 A0 3C 69 C3 16 FB 56 E4 10 1C D5 0B 54 8C 07 A6 61 F4 F9 83 9E E8 9A AE A2 1C D1 CD F9 F6 49 DF
Debug Output: Пакет от сервера длинной 71 : 0A 04 08 32 29 13 10 7E 5C 43 73 2A 34 49 1C 38 04 5B 75 07 4A 3B 73 63 7E 65 73 1E 37 45 47 19 2A 52 6B 7B 56 1C 73 20 3C 69 43 16 7B 56 64 10 1C 55 0B 54 0C 07 26 61 74 79 03 1E 68 1A 2E 22 1C 51 4D 79 76 49 5F


Очень похоже что проксик режет все что выше 0x80 соотв - хотелось бы убрать это ограничение.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог