![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Broadcasting [D3, D4, D5, D6, Win95/98, Win2k, WinXP]
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