Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Broadcasting [D3, D4, D5, D6, Win95/98, Win2k, WinXP]


Страницы:   1 2

OutSidEr ©   (2003-02-13 09:32:00) 

Кто-нибудь сталкивался с субжем?
Если у кого-то есть информация, или хотя бы ссылки на нее, просьба откликнуться.
Нужно чтобы прога броадкастом рассылала некую информацию по LAN, а её клиенты вылавливали эту инфу.


OutSidEr   (2003-02-26 14:13:00) [1]

Окей, товарищи, дак как хотя бы послать UDP пакет для всех машин, находящихся со мной на одном, допустим свиче - причем неважно, из разных мы сетей или нет. Или такое в принципе невозможно?


Anatoly Podgoretsky   (2003-02-15 16:17:00) [2]

Я про то и говорю, что для TCP требуется коннект и двухсторонний обмен с подтвержениями, не реально как то это для множества компьютеров, абсурд однако.


Anatoly Podgoretsky   (2003-02-15 16:06:00) [3]

Malder © (15.02.03 14:40)
Это без разницы, пакет поступит, но конечно делать броадкаст для TCP это как то скажем не совсем :-)


Malder   (2003-02-15 16:04:00) [4]

По моему, Anatoly Podgoretsky что-то перепутал про broadcast TCP


imbicil   (2003-02-15 15:30:00) [5]

Тогда у меня вопрос какже послать на 255.255.255.255?

Я посылаю по UDP на адрес 255.255.255.255, но все вываливается по екзепшену.
У меня ип 192.168.1.2 маска 255.255.255.0
И пожалуйста поподробнее про броадкаст на tcp.


Malder   (2003-02-15 14:40:00) [6]

Anatoly Podgoretsky, вы на мой пост отвечали ?

Я ничего не понял. Ведь говорилось про TCP, а не UDP


Anatoly Podgoretsky   (2003-02-15 13:25:00) [7]

Это очень просто посылка на адрес, который является бродкаст адресом для данной сети, например для сети класса С это х.х.х.255
Все компьютеры у которых данный адрес является адресом броадкаста (широковещательный адрес) примут этот пакет (в обычних условиях конечно).


Malder   (2003-02-15 13:05:00) [8]

Anatoly Podgoretsky, очень интересно

>>Так под TCP broadcast в принципе не возможен, я правильно понял?

>Возможен, но смотря куда и как.

А можно поподробнее про broadcast по TCP ?


Anatoly Podgoretsky   (2003-02-15 10:58:00) [9]

imbicil © (14.02.03 22:39)
Если у тебя проблема с трафиком, не читай, подпишись на какой нибудь более скромный список рассылки, зачем же ты себя насилуешь.

Provodnick (15.02.03 09:54)
Возможен, но смотря куда и как.
Просто ради примера, возьмем две машины в одной физической сети, прям на одном хабе и пускай у них в конфигурации так определены IP и маски.


1. 192.168.0.1 255.255.255.0
2. 192.168.0.2 255.255.255.128


Так посылка на адрес 192.168.0.255 работать не для второй машины не будет, у нее широковещательный адрес 192.168.0.127, а у первой 192.168.0.255
С адресом 255.255.255.255 тоже не все чисто, в одних случаях будет, а в других нет. Это надо проверять для каждого случая отдельно.


Provodnick   (2003-02-15 09:54:00) [10]

Так под TCP broadcast в принципе не возможен, я правильно понял?


Malder   (2003-02-15 00:12:00) [11]

Ну если хочешь разговаривать на повышенных тонах - пожалуйста

Ответы по пунктам imbicil © (14.02.03 22:39)

1) Код писатть не буду - его и так в интернете полно. И вообще, код без понимания сути - по моему, глупый способ изучения проблемы
2) А я и не говорил, что ты говорил, что крут. Просто видно, что материала ты не знаешь вообще. Но при этом даешь категоричные суждения
>Во вторых - Velocity прав
3) >читай внимательнее что я писал

Читаю:
>Почемуто с тваим вариантом широковещательного адреса у меня
>ничего не получается

с каким моим вариантом ? Я никаких широковещательных адресов не писал
4) А никто тебе и не говорил, что по адресу 255.255.255.255 обязательно пройдет броадкаст
5) Извини, что не написал код. Вероятно, траффика у тебя сожралось немерянно.


Извиняюсь перед всеми остальными, что развел такой флейм. Просто пятница... конец рабочей недели =)


imbicil   (2003-02-14 22:39:00) [12]

1) Я у тебя попрасил работающий код с тваим вариантом
2) Я не говорил что я крут
3) Я не такой тупой чтобы широковещательный от маски неотличить(читай внимательнее что я писал)
4) У меня не получалось отсылать широковещательный по ипу 255.255.255.255. Прошу тебя дать мне рабочий код, а не ссылаться на rfc
5) Если кода нет пожалуста непиши сюда у меня рассылка трафик жрет.


Anatoly Podgoretsky   (2003-02-14 17:21:00) [13]

Каждый судит по мере своей испорченности.


Malder   (2003-02-14 17:13:00) [14]

imbicil, практически нет слов.

Если ты внимательно прочитаешь, то я не говорил, что 255.255.255.0 - это широковещательный адрес, это маска. Тебе о чем-нибудь это говорит? И вообще, RTFM.
Если человек так уверен в своей крутости и непогрешности при полном отсутствии знаний - то я даже и спорить не буду


OutSidEr   (2003-02-14 09:09:00) [15]

Спасибо всем, кто ответил.


imbicil   (2003-02-14 07:04:00) [16]

1). Глупо менять ник, когда тебя многие знают. Если у тебя фамилия Какашкин ты же ее не меняеш?
2). Vellocity прав в том что маска для широковещачетльного типа *.*.*.*.255 верна.
3). Почемуто с тваим вариантом широковещательного адреса у меня ничего не получается. Кинь рабочий код как ты по нему посылаеш.


Malder   (2003-02-13 23:47:00) [17]

1) imbicil, сменил бы ты ник.

2) и в чем Velocity прав ? В том, что у многих сетей маска 255.255.255.0 ? Но он даже этого не сказал.


imbicil   (2003-02-13 22:43:00) [18]

Во первых - какой протокол можно для этого использовать
Во вторых - Velocity прав (я на этом чат сделал)
---------------------------------------------------------
Broadcast сообщения можно послать используя udp протокол, tcp непригоден. Вот код для приема и посылки месаги:

посылаем.
Лично я когда делал чат то посылал по ипу вида *.*.*.255.
Т.е. если я имел ип 192.168.1.2 то посылал месаги на ип 192.168.1.255

Опции RemotePort и LocalePort NMUDP1 должны быть одинаковыми.
RemoteHost = широковещательный адрес (255)

procedure TForm1.Button1Click(Sender: TObject);
var
MyStream: TMemoryStream;
TmpStr: String;
Begin
NMUDP1.ReportLevel := Status_Basic;
TmpStr := Edit3.Text;
MyStream := TMemoryStream.Create;
try
MyStream.Write(TmpStr[1], Length(TmpStr));
NMUDP1.SendStream(MyStream);
finally
MyStream.Free;
end;
end;

а принимаем вот так -

procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
var
MyStream: TMemoryStream;
TmpStr: String;
begin
MyStream := TMemoryStream.Create;
try
NMUDP1.ReadStream(MyStream);
SetLength(TmpStr,NumberBytes);
MyStream.Read(TmpStr[1],NumberBytes);
finally
MyStream.Free;
end;
if tmpstr = "blablabla" then
// в общем тут вставляй проверку какую хочеш
end;

Если буду еще вопросы пиши, потараюсь ответить...
Программист программисту как никак друг, собутыльник и запасные очки 8)


Malder   (2003-02-13 20:53:00) [19]

Velocity, не обижайтесь, но у вас еще более тяжелый случай. Вы при своем незнании еще и советы даете.


Anatoly Podgoretsky   (2003-02-13 15:21:00) [20]

Это неверно, бродкаст адрес это максимальный адрес сети, то есть совсем не обязательно 255. Можно попробовать совсем большой броадкаст адрес 255.255.255.255


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо