Форум: "Сети";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизUDP и широковещательные пакеты Найти похожие ветки
← →
denkop © (2004-10-03 18:09) [0]Как правильно обработать ответы от юзеров которым был отослан широковещательный пакет. Когда отправляется обычная дэйтаграмма типа UDPClient.Send(...), ответ могу получить с помощью UDPClient.RecieveString(). А как быть когда после одной отправки приходит много ответов?? Как определить сколько пользователей откликнится, чтобы обработать ответы от них?
← →
Piter © (2004-10-03 21:18) [1]Ну и вопрос... да никак не определить - откуда ты знаешь сколько машин откликнутся?
И вообще непонятно.. ведь когда тебе будут отвечать - ты же видишь их IP адреса - вот так и различай разных клиентов. Каждый уникальный IP адрес - уникальный клиент.
В чем вопрос то? :)
← →
denkop © (2004-10-03 23:07) [2]Вот кусок из Indy примеров отправки:
procedure TUDPMainForm.SendButtonClick(Sender: TObject);
var
MessageID: Integer;
ThisMessage: String;
ReceivedString: String;
begin
MessageID := Random(MAXINT);
ThisMessage := "Message: " + IntToStr(MessageID);
UDPMemo.Lines.Add("Sending " + ThisMessage);
UDPClient.Send(ThisMessage);
ReceivedString := UDPClient.ReceiveString();
и здесь я никак не могу отличить чей ответ я получаю с ReceiveString. На сервере там передаётся ИП подключенного клиента (procedure TUDPMainForm.UDPServerUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle)
),а на клиенте к сожалению ABinding нет. Или может я ошибаюсь??if ReceivedString = "" then
UDPMemo.Lines.Add("No response received from the server after " + IntToStr(UDPClient.ReceiveTimeout) + " millseconds.")
else
UDPMemo.Lines.Add("Received: " + ReceivedString)
end;
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.058 c