Lan чаты...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Lan чаты...

Сообщение Zer » 11.01.2005 (Вт) 22:15

Меня всё интересует вопрос: как пишут чаты?
Допустим на каком то IP-шнике висит прога, ожидающая запроса на подключение на порт N. На другом IP висит прога, которая пытается подключится к первой, но не знает её IP. Так вот: как в этих чатах делают? Не уж-то сканируют весь диапазон IP-адресов пытаясь к кажлому подключится в порт N???
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

Морфий
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 119
Зарегистрирован: 11.01.2005 (Вт) 18:06

Сообщение Морфий » 11.01.2005 (Вт) 22:20

На каком то IP висит сервер, а к нему подключаются клиенты, которые указывают IP сервер.
Можно сделать чат на двух пользователей: один указывает айпи второго, а второй -- первого и коннектются друг с другом :)
Вот оно — счастье...

deepslam
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 286
Зарегистрирован: 19.08.2002 (Пн) 2:25
Откуда: Russia

Сообщение deepslam » 11.01.2005 (Вт) 22:21

Используется технология клиент-сервер, т.е. сервер висит на каком то постоянном IP и слушает какой то определенный порт, а прога - клиент посылает некое сообщение, в котором как минимум указано:
1) Кому это сообщение (допустим ник), а прога-сервер, разбирая сообщение отделит ник и отошлет его на IP клиента с этим ником.
2) Также сервер отошлет само сообщение и от кого оно было отправлено.

Вот примерно так и работают проги типа аськи :)

VOS
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 72
Зарегистрирован: 04.11.2004 (Чт) 18:01
Откуда: СПб

Сообщение VOS » 11.01.2005 (Вт) 22:22

Если хочешь, могу дать исход моего MiceChat'а...
Чат по TCP-IP для двоих, также функции вэб-броузера...
Нет еще поддержки перекачки файлов...
- Папа, а правда, что форумы делают человека идиотом?
- Гыыы, лол, сынок!

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 11.01.2005 (Вт) 22:31

Челы.... Возможно я неверно понял вопрос, а возможно вы

Дело в том, что чел спрашивал нечто следующее

Как прога клиента находит прогу сервак, если она не знает IP, на

котором та стоит.

Есть чаты, которые сервер обнаруживают сами.

ИМХО это происходит за счёт широковещательных пакетов.

Если я не прав, объясните ? :roll:

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 12.01.2005 (Ср) 0:29

Приблизительно так. Причем заранее ни один IP не известен. Конечно, если установить соединение, узнаешь и IP, но как его установишь??? Причём заранее не известно, какая из двух копий программ будет сервером... (В обе встроены возможности как и подключитя так и принять подключение)
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 12.01.2005 (Ср) 0:34

Да, если не жалко вышли на : [url]Zer86@list.ru[/url]
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.01.2005 (Ср) 8:42

Есть чаты клиент-сервер, есть чаты без выделенного сервера. В любом случае каждый новый клиент посылает по UDP broadcast-сообщение "вот он я" и ждет ответ.
Lasciate ogni speranza, voi ch'entrate.

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Сообщение JohnK » 12.01.2005 (Ср) 15:36

Как вариан в чате указываешь адрес сервера. Таким образом отпадает сканирование сети. 8)
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

|kerish|
Постоялец
Постоялец
 
Сообщения: 831
Зарегистрирован: 22.10.2004 (Пт) 0:31

Сообщение |kerish| » 12.01.2005 (Ср) 15:57

Я когда-то делал чат.
Если брать локальную сеть.
То я просто брал список компов в сети.
И к каждому коннектился.
Если сервер отвечал, что он типа сервер, то я заносил его в список серверов чата. А затем пользователь уже сам выбирал куда коннектиться.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 12.01.2005 (Ср) 16:04

2 alibek

новый клиент посылает по UDP broadcast-сообщение "вот он я"


Некоторые "нехорошие" провайдеры эти сообщения рубят у себя в ланах :(

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.01.2005 (Ср) 16:11

Konst_One, какое отношение провайдеры имеют к LAN?
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 12.01.2005 (Ср) 16:29

я имею ввиду провайдеры домашних интранет-сетей (таких сейчас много по Москве развелось), они же и доступ к инету предоставляют

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 12.01.2005 (Ср) 17:17

Это уже не LAN. В таком случае либо указывать в настройках адрес сервера, либо сканировать сеть, иначе никак.
Lasciate ogni speranza, voi ch'entrate.

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Re:

Сообщение xenomorph » 12.01.2005 (Ср) 17:44

Практический любой рутер от широковещательных запросов отбиваеться
не хуже Курниковой (в сравнении с тенисніми мячиками 8).
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 12.01.2005 (Ср) 17:50

вот и я о том же :)
т.е. надо указывать адрес конкретного сервера для надежности

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 15.01.2005 (Сб) 20:27

Да вы опять не поняли... НЕТ ОБЩЕГО СЕРВЕРА, И НЕТ СПИСКА IP АДРЕСОВ!!! Даже по UDP неизвестно, куда отправлять!!!
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.01.2005 (Сб) 20:27

По UDP отправляешь всем. Т.е. на 255.255.255.255.
Lasciate ogni speranza, voi ch'entrate.

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 15.01.2005 (Сб) 20:48

В смысле, если отправить на IP="255.255.255.255", то это сообщение дойдёт всем, кто Bind'ит данный порт???
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.01.2005 (Сб) 20:56

Это не порт, это Broadcast-адрес. При этом (при условии, что на маршрутизаторе или свитче не рубятся широковещательные запросы) этот пакет доставляется всем точкам сети и все клиенты, у которых сокет забинден на порт (такой же порт, на который пакет посылался) его получат.
Lasciate ogni speranza, voi ch'entrate.

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 15.01.2005 (Сб) 21:04

Я и не сказал, что это порт...
Огромный пасиб... :)
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Re:

Сообщение xenomorph » 15.01.2005 (Сб) 21:18

Alibek тебе всё объяснил 8).

Тебя, спасёт 3 точка 8) (не путать с 5-ой 8))).

т.е. то, до чего достучаться можно всегда и везде 8).

1. Мылбокс.
2. Аська. (надо писать клиента т.е. - знать протокол)
3. Ирка. (надо писать клиента т.е. - знать протокол)
4. ФТП
5. P2P 8).

1. Мылбокс.

Например: vasya_pupkin@ - сервер после запуска посылает
мыл на мыло 8). Клиент просто проверяет мылбокс и стягивает
оттуда IP сервера.

Плюсы: Просто в реализации.
Минусы: Писать надо своего почтовика 8)

2. Аська. (надо писать клиента т.е. - знать протокол)

Регишь обоих - клиента и сервера.
Выходишь и тем и тем в он-лайн 8).
Отсылаешь АйПи. 8) via ICQ 8)

Плюсы: Быстро! Эффективно! АнАнимно! 8)))
Минусы: Писать надо своих клиентов под Асю +
знать протокол.

Товарищи! (счас кодю этот способ -
если у кого клиент АСиКу 8) есть - запостте плz!)

3. Ирка. (надо писать клиента т.е. - знать протокол)

то же что и с аськой ... но менее анонимно ...
+ некоторые особенности 8)

4. ФТП

Достаточно сложный способ ...

Пишеться 2 ФТП Клиента.
Сервак аплоадит свой АйПи, Клиент, стягивает его ...

Плюсы: Довольно быстро! Эффективно! Довольно АнАнимно.
Минусы: Писать надо своих клиентов под FTP +
знать протокол.

Мне удалось скодить Клиента и сервера, которые общаються
"сквозь" FTP аккаунт! Пакет шифруеться + лоадиться на ФТП,
Клиент проверяет каждые N секунд аккаунт ... забирает его ...
далее наоборот 8).

5. P2P 8). - Для извращенцев 8)))

Вопстчем - способоФФФ тЫща!
Выбирай 8) - все пашут - и на любых рутерах 8)))
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 15.01.2005 (Сб) 22:28

to xenomorph: Уже разобрался... А ты так и не понял вопрос...
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

xenomorph
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 508
Зарегистрирован: 18.04.2004 (Вс) 11:41
Откуда: это не важно - на сегодня у меня есть алиби ...

Сообщение xenomorph » 15.01.2005 (Сб) 23:48

2 Zer: Странно 8), или одно из двух или ...
ты не понял ответ *)
... Dpkjvfnm dc`xnj itdtkbnmcz, f tckb yt itdtkbnmcz hfcitdtkbnm b dpkjvfnm !!! ...

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 16.01.2005 (Вс) 0:04

Я же сказал, что заранее не знаешь, кто сервер... Да и нафиг так извращатся...
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

Zer
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 460
Зарегистрирован: 26.09.2003 (Пт) 13:08
Откуда: Нижний Новгород

Сообщение Zer » 18.01.2005 (Вт) 2:08

To Alibek: Кстати, почему-то при отсылке на 255.255.255.255 ничего не приходит, а при отсылке на ip1.ip2.ip3.255 приходит все с адресом ip1.ip2.ip3.x.
Microsoft DirectX - Маломягкий Прямой Х...
Не откладывай на завтра то, что можно выпить сегодня...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.01.2005 (Вт) 5:51

Значит, те кто настраивали маршрутизацию - не лохи, и рубят широковещательные пакеты.

А "ip1.ip2.ip3.255" - это широковещательный адрес сети, в случае когда её маска - 255.255.255.0. Если маска другая, то и широковещательный адрес сети будет другой.
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 18.01.2005 (Вт) 10:00

В дополнение скажу.
Широковещательный запрос посылается так.
Допустим, твой адрес
IP = ip1.ip2.ip3.ip4
и маска
MASK = mask1.mask2.mask3.mask4

Тогда broadcast-адрес будет

(IP and MASK) and (255.255.255.255 and not(MASK))
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.01.2005 (Вт) 13:36

alibek писал(а):В дополнение скажу.
Широковещательный запрос посылается так.
Допустим, твой адрес
IP = ip1.ip2.ip3.ip4
и маска
MASK = mask1.mask2.mask3.mask4

Тогда broadcast-адрес будет

(IP and MASK) and (255.255.255.255 and not(MASK))

А разве не
(IP and MASK) or (255.255.255.255 and not(MASK))
:?:

У тебя после перпегруппировки получался бы член (MASK and not(MASK)), равный нулю.

То же самое можно упростить до
(IP and MASK) or not(MASK)
т.к. 255.255.255.255 and IP - то же, что IP
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 18.01.2005 (Вт) 13:41

Блин, ну конечно OR :)
Lasciate ogni speranza, voi ch'entrate.

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

    TopList