(sr.) app developers... c#, web services, ajax, sql server.... good/solid app developers...Уникурсал Уникурсалыч писал(а):а, что, дают?папа Карло писал(а): работа нужна?
а что дают?
Так бывает? :)
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
- папа Карло
- Шарманщик
- Сообщения: 8565
- Зарегистрирован: 17 фев 2003, 15:04
- Откуда: НН -> BC -> WA -> UT -> CA
- george
- Графоман
- Сообщения: 14127
- Зарегистрирован: 20 июл 2003, 12:48
- Откуда: M2R
-
- Частый Гость
- Сообщения: 29
- Зарегистрирован: 04 июн 2006, 20:32
Не хочу висеть неделю а что надо делать при двух разных протоколах на одном порту И каково максимальное количество клиентов в стандартном TCP/IP сокете и что такое стандартный TCP/IP сокет и что надо делать если всего этого дела надо в два раза больше и хорошо с привязкой к платформе ?spavel писал(а): Лучше бы спросил что делать если надо 2 разных протокола на один порт повесить или максимальное количество клиентов в стандартном TCP/IP сокете и что делать если надо их в 2 раза больше.
-
- Графоман
- Сообщения: 8989
- Зарегистрирован: 27 июл 2006, 21:11
- Откуда: SPb-Vancouver
- aissp
- Маньяк
- Сообщения: 2710
- Зарегистрирован: 07 ноя 2005, 09:51
Хе хе
Два три или скока там протоколов на одном порту ето за ради бога. вы принимаете посылку определяете по какому протоколу пришел клиент и посылаете его соотвествуюшему приложению-туннелированеи называется. А вот что такое много клиентов на бысд сокете - хоть убейте не скажу. сокет вообще заключает в себе пару чисел - порт сервера + порт клиента имеет в качестве идентификатора число и представялется с точки зрения операционной системой открытм файлом. Если речь идет именно обо етом - можно увеличить число одновременно открытых файловых дескрипторов. Но ето токма предоложения, потому как вопрос чегой то я недовтокнул
Два три или скока там протоколов на одном порту ето за ради бога. вы принимаете посылку определяете по какому протоколу пришел клиент и посылаете его соотвествуюшему приложению-туннелированеи называется. А вот что такое много клиентов на бысд сокете - хоть убейте не скажу. сокет вообще заключает в себе пару чисел - порт сервера + порт клиента имеет в качестве идентификатора число и представялется с точки зрения операционной системой открытм файлом. Если речь идет именно обо етом - можно увеличить число одновременно открытых файловых дескрипторов. Но ето токма предоложения, потому как вопрос чегой то я недовтокнул
-
- Частый Гость
- Сообщения: 29
- Зарегистрирован: 04 июн 2006, 20:32
Чего-то я не догнал пусть есть sendmail (exim, postfix whatever) - TCP/25
и apache TCP/80. Вы ловите весь траф на 8025.
Первое вам необходима тонкая прослойка которая будет слушать 8025 и понимать как SMTP так и HTTP и разруливать траф ибо одновременно нельзя будет повесить и httpd и MTA на один порт - socket aleardy in use.
второе сокет - это ip+port (согласно Теренсу Чану "Системное программирование для UNIX") на одном хосте но не как ни на двух ибо это уже будет соединение.
Вопрос теперь есть - какими средствами можно реализовавать туннелирование - один порт во много приложений ? Очевидно что знание этого дела выходит за рамки вопросов на интервью.
и apache TCP/80. Вы ловите весь траф на 8025.
Первое вам необходима тонкая прослойка которая будет слушать 8025 и понимать как SMTP так и HTTP и разруливать траф ибо одновременно нельзя будет повесить и httpd и MTA на один порт - socket aleardy in use.
второе сокет - это ip+port (согласно Теренсу Чану "Системное программирование для UNIX") на одном хосте но не как ни на двух ибо это уже будет соединение.
Вопрос теперь есть - какими средствами можно реализовавать туннелирование - один порт во много приложений ? Очевидно что знание этого дела выходит за рамки вопросов на интервью.
- aissp
- Маньяк
- Сообщения: 2710
- Зарегистрирован: 07 ноя 2005, 09:51
Ща попробую
Чисто абстрактно
Пусть у вас есть два протокла:
Приветсвия клиентов
1. I'm protocol 1
2. I'm protocol 2
Проткол 1 работает по портй 1111 (по умолчанию)
Протокл 2 работает по порту 2222 (по умолчанию)
первое что вы делаете запускаете два сервера
serv_protocol_1 127.0.0.1 port 1111
serv_protocol_2 12.0.0.01 port 2222
Далее вы пишете прокси типа () :
accept(MYIP....)
fork()
bla-bla-bla (определить кто потомок кто сервер далее для потомка)
get_message(void* mess)...
if(message=="I'm protocol 1") {
open(port 1111)
for(;;) {
send(1111, mess)
recv(1111, *recv)
send(client recv)
wait(for next message)...
}
}
все что требуется от прокси ето определить по старту протокола зачем к нему пришли и дальше тупо брать любую посылку с клиента и отправлять на соотв сервер, брать ответ с сервера и отправлять на клиента один в один.
(надеюсь идею донес - надеюсь потому как нетрезв)
Типа так.
о да не знаю что писал чен. но ситуация такова - ок берем нттп
слущаюший сокет: 80:*
сокеты соединившихся клиентов?
80:33315
80:33319
80:33327
80:33335
80:33378
ну итд...
Чисто абстрактно
Пусть у вас есть два протокла:
Приветсвия клиентов
1. I'm protocol 1
2. I'm protocol 2
Проткол 1 работает по портй 1111 (по умолчанию)
Протокл 2 работает по порту 2222 (по умолчанию)
первое что вы делаете запускаете два сервера
serv_protocol_1 127.0.0.1 port 1111
serv_protocol_2 12.0.0.01 port 2222
Далее вы пишете прокси типа () :
accept(MYIP....)
fork()
bla-bla-bla (определить кто потомок кто сервер далее для потомка)
get_message(void* mess)...
if(message=="I'm protocol 1") {
open(port 1111)
for(;;) {
send(1111, mess)
recv(1111, *recv)
send(client recv)
wait(for next message)...
}
}
все что требуется от прокси ето определить по старту протокола зачем к нему пришли и дальше тупо брать любую посылку с клиента и отправлять на соотв сервер, брать ответ с сервера и отправлять на клиента один в один.
(надеюсь идею донес - надеюсь потому как нетрезв)
Типа так.
о да не знаю что писал чен. но ситуация такова - ок берем нттп
слущаюший сокет: 80:*
сокеты соединившихся клиентов?
80:33315
80:33319
80:33327
80:33335
80:33378
ну итд...
- sobomax
- Маньяк
- Сообщения: 3699
- Зарегистрирован: 29 июн 2006, 22:53
- Откуда: Vancouver
- aissp
- Маньяк
- Сообщения: 2710
- Зарегистрирован: 07 ноя 2005, 09:51
- sobomax
- Маньяк
- Сообщения: 3699
- Зарегистрирован: 29 июн 2006, 22:53
- Откуда: Vancouver
Почему неправильно - SMTP например, сервер посылает приветствие не ожидая от клиента ничего. Есть и другие протоколы в которых сервер например сразу анонсирует ту версию протокола которую он поддерживает а клиент подстраивается под это.aissp писал(а):Да там сверху с портами конечно еще адреса клиента и сервера (на всяк случай)
Что касается клиента который пришел к серверу не зная зачем - то пожалуста назови пользовательский протокол который так делает? Если ето чейто кастом протокол - то ето неправильно.
В общем ничего неправильно ни в том чтобы сервер ждал приветвия от клиента ни в том чтобы клиент ждал приветствия от сервера нет - все зависит от того чего хотели добиться авторы протокола, никаких стандартов на эту тему насколько мне извество нет и быть не может.
-Maxim