Текущий архив: 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