|
|
|
Проста программа поддержки туннеля через сокеты(урезанный HTTP proxy)
|
|||
|---|---|---|---|
|
#18+
Задача: Есть приложение, которое пытается установить через прокси сервер туннель, отправляя запросы типа Код: plaintext 1. Запрос выглядит именно так, как указано в цитате, без дополнительных строк. (только меняется комбинация адрес:порт) Максимум она создает 8 туннелей одновременно. Если я правильно понял, туннель работает через Ssl. (я в этом не уверен) Требуется: Написать простое C++ приложение(консольное), которое через сокеты будет перехватывать запрос на коннект, менять его на Код: plaintext 1. а затем поддерживать туннель. Приложение будет потом перенесно на линукс, так что .NET и MFC использовать не выйдет. (потребуется переносить многопоточность, но это решаемо, так как смог портировать alphaProxy под вин32, есть образец...) Проблема: Я приблизительно представляю, как написать приложение, которое будет работать как урезанный прокси-сервер перебрасывая запросы между клиентом и сервером, но у меня нет образца кода работы с туннелями. (alpha proxy это не поддерживает) Как должен выглядеть код работы с туннелем (т.е. двухсторонний переброс данных)? С прокси-сервером понятно, так как можно считать запрос, обработать его, и переслать серверу, получить от него ответ, обработать, и переслать клиенту (т.е. прием/передача идет попеременно). Но, как я понял из rfc2616, формат данных, передаваемых через toonel неизвестен/может быть любым, соответственно, мне пока неясно, как поддерживать общение между клиентом/сервером (оно ведь может быть двухсторонним/одновременным, без пауз?)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2007, 05:48 |
|
||
|
Проста программа поддержки туннеля через сокеты(урезанный HTTP proxy)
|
|||
|---|---|---|---|
|
#18+
Забыл уточнить. Запрос должен переправлятся на HTTP прокси. Вопрос связан вот с этой темой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2007, 05:50 |
|
||
|
Проста программа поддержки туннеля через сокеты(урезанный HTTP proxy)
|
|||
|---|---|---|---|
|
#18+
как я понимаю, обработка туннеля должна выглядеть приблизительно так (dstSock и srcSock - это концы туннеля, проходящего через приложение): Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.02.2007, 17:09 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=307&tid=2029381]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 365ms |

| 0 / 0 |
