Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.21;
Скачать: CL | DM;

Вниз

Broadcasting   Найти похожие ветки 

 
OutSidEr ©   (2003-02-13 09:32) [0]

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


 
Velocity   (2003-02-13 15:15) [1]

Мда, тяжёлый случай ;)))))) В общем так - broadcast-пакет это пакет предназначенный на адрес xxx.xxx.xxx.255 вместо иксов ессно подставляешь первые три составляющие маски сети (или как это называется? ну не суть важно). вот и всё. кстати не советую использовать широковещательные (aka broadcast) пакеты - сеть захламляется.


 
Anatoly Podgoretsky ©   (2003-02-13 15:21) [2]

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


 
Malder ©   (2003-02-13 20:53) [3]

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


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

Во первых - какой протокол можно для этого использовать
Во вторых - 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 23:47) [5]

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

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


 
imbicil ©   (2003-02-14 07:04) [6]

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


 
OutSidEr ©   (2003-02-14 09:09) [7]

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


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

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

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


 
Anatoly Podgoretsky ©   (2003-02-14 17:21) [9]

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


 
imbicil ©   (2003-02-14 22:39) [10]

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


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

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

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

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

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

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


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


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

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


 
Anatoly Podgoretsky ©   (2003-02-15 10:58) [13]

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 тоже не все чисто, в одних случаях будет, а в других нет. Это надо проверять для каждого случая отдельно.


 
Malder ©   (2003-02-15 13:05) [14]

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

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

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

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


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

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


 
Malder ©   (2003-02-15 14:40) [16]

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

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


 
imbicil ©   (2003-02-15 15:30) [17]

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

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


 
Malder ©   (2003-02-15 16:04) [18]

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


 
Anatoly Podgoretsky ©   (2003-02-15 16:06) [19]

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


 
Anatoly Podgoretsky ©   (2003-02-15 16:17) [20]

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


 
OutSidEr ©   (2003-02-26 14:13) [21]

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



Страницы: 1 вся ветка

Текущий архив: 2003.04.21;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.019 c
1-67383
Гость
2003-04-10 12:08
2003.04.21
Число строк в Memo1


3-67151
Enty
2003-04-03 12:05
2003.04.21
Ошибка изменения длинных символьных полей


1-67298
Имран
2003-04-11 18:25
2003.04.21
Как поочереди открывать текстовый файл в переменную?


1-67266
Crush_FM
2003-04-11 13:44
2003.04.21
Компоненты


14-67557
Sergqwe
2003-04-04 16:03
2003.04.21
Тупой вопрос!