![]() |
|
Модераторы: gambit |
![]()
|
|
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
Доброго времени суток!
Пишу приложение которое должно работать с портом через TcpListner. Всё ок, но мне бы хотелось сделать так, что бы если моё приложение не блокировало порт, то есть к этому порту поверх меня должно подключаться другое приложение. |
|||
|
||||
| Yama |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 2.8.2006 Репутация: нет Всего: 2 |
Что значит, подключаться?
TcpListener цепляется на опр. порт и принимает входящие соединения.. Если ты хочешь повесить на 1 порт 2 слушателя, то, по-моему, это невозможно. Подумай логически, как система должна определить, какому именно слушателю пришли те или иные данные? --------------------
Если бы строители строили дома так же, как программисты пишут программы, то первый же залетевший в форточку дятел разрушил бы всю нашу цивилизацию. |
|||
|
||||
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
Я понимаю, но как тогда работает тот же фаервол? Хотя мне вообще не нужно перехватывать трафик с порта, мне просто требуется повесить на порт ssl сертификат. То есть сделать так, что бы весь входящий трафик расшифровывался этим сертификатом и расшифровонные данные передавались какому либо клиенту.
|
|||
|
||||
| Yama |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 2.8.2006 Репутация: нет Всего: 2 |
1. Получается, что тебе надо что-то вроде прокси, которая будет принимать траффик, рассшифровывать его и передавать клиенту. Так? Плюсы: работает другое приложение, отличное от клиента(я так понял, что клиентов может быть много); На этом приложении ты так же можешь реализовать что-то типа Load Balancer'a, который будет распределять нагрузку от клиентов на сервер или как там у тебя это работает. Минусы: это все надо писать как подобное реализовать по-другому, я не знаю. По сути получается: у тебя будет слушатель порта(совет: переходи сразу с TcpListener'a на сокеты. Имхо TcpListener это не более чем обертка над .НЕТ сокетами, которые, в свою очередь, обертка над WinSocks), который будет принимать входящие соединения от клиентов -> принимать запрос клиента -> шифровать его и передавать на сервер -> принимать ответ от сервера -> рассшифровывать его -> передавать клиенту. 2. Другой вариант решения данной задачи: тебе просто надо прикрутить SSL к своим клиентам(как это реализованно в веб-броузерах), что бы каждый клиент сам занимался шифровкой/дешифровкой траффика. З.Ы. Нескромный вопрос: а у тебя есть готовая библиотека для шифровки/дешифровки SSL под .НЕТ, исключая System.Security & System.Net.Security ? Это сообщение отредактировал(а) Yama - 1.5.2007, 17:49 --------------------
Если бы строители строили дома так же, как программисты пишут программы, то первый же залетевший в форточку дятел разрушил бы всю нашу цивилизацию. |
|||
|
||||
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
Да, собственно это и нужно. Только я пишу серверную часть. Клиентская часть может быть произвольной. И принимающая прога на сервере, тоже произвольная. |
|||
|
||||
| Yama |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 2.8.2006 Репутация: нет Всего: 2 |
Так это и есть что-то типа прокси, только для опр. порта. И все-таки:
--------------------
Если бы строители строили дома так же, как программисты пишут программы, то первый же залетевший в форточку дятел разрушил бы всю нашу цивилизацию. |
||||
|
|||||
| Red Wind |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 280 Регистрация: 25.6.2004 Где: Минск Репутация: нет Всего: 2 |
||||
|
||||
| vers |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 3.5.2007 Репутация: нет Всего: нет |
Я думаю, на один TCP-порт ты два сервера не повесишь, разве что эти порты будут на разных сетевых интерфейсах. Файерволы для этого ставят либо драйвер-фильтр, либо перехватчик на уровне TDI (вроде такая аббревиатура). В твоем случае лучше всего сделать что-то навроде портмаппера с разными номерами TCP-портов: один для приема незашифрованного трафика, сервер которого будет подключаться ко второму порту в качестве клиента и передавать зашифрованные данные. Но этот способ не подойдет, если тебе нужна будет идентификация клиентов по IP-адресу на конечном сервере.
|
|||
|
||||
| Yama |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 2.8.2006 Репутация: нет Всего: 2 |
Угу. Нельзя на 1 порт просто так повесить 2 сервера.. у тебя должен быть сервер, который висит на нужном тебе порту и принимает все входящие соединения, принимает данные от клиента, шифрует их и далее по тексту.
Именно. ТО, что мы с vers"ом описываем, это нечто отдаленно напоминаеющее по архитектуре анонимный прокси. Единственное, что я могу предложить, это описано в моем посте от 1.5.2007, 17:46 и описал в предыдущем посте vers. Но если у тенбя все таки получится повесить на 1 порт 2 сервера и при этом они будут корректно работать и делать то, что тебе надо, расскажи потом тут, как ты это сделал, плз.... --------------------
Если бы строители строили дома так же, как программисты пишут программы, то первый же залетевший в форточку дятел разрушил бы всю нашу цивилизацию. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |