Форум: "Сети";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизПодскажите способ простейшего обмена данными между двумя ip ? ( Найти похожие ветки
← →
Сеть (2005-03-26 01:43) [0]RealTimer (24.03.05 00:06) [11]
Простого пути нет. Indy - на редкость беспонтовая библиотека
(и не пишите мне ваши письма ненависти). С
IdTCPServer/IdTCPClient я не справился. Мое мнение об этих
компонентах - работают только примеры, и то - не на всякой
машине (Честное пионерское). Советую использовать IdUDPServer-
этот точно работает, причем везде. На прием сообщения - событие
OnUDPRead. На передачу - процедуры Send, SendBuffer
Вот примеры:
На передачу
var
fSocket:TIdUDPServer;
procedure Form1.SendIt(const aData: string);
begin
fSocket.Send("162.176.1.0",1001,aData);
end;
На прием
var
fSocket:TIdUDPServer;
procedure Form1.OnCreate(Sender:TObject);
var
fSocket:TIdUDPServer;
begin
.......// здесь инициализация..там просто
fSocket.OnUDPRead:=fSocketOnUDPRead;
end;
procedure Form1.fSocketOnUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
s:string;
begin
n:=AData.Size;
SetLength(s,n);
AData.Read(s[1],n);
// в s - полученная строка
// ABinding.PeerIP - адрес отправителя
// ABinding.PeerPort - порт отправителя
end;
Это пример для UDP - т.е. доставку не гарантирует. Впрочем у
меня везде работало и exception-ами не парило
Не надо смущаться - и с клиентской и с серверной стороны -
TIdUDPServer. Ресурсов есть мало, работает быстро. Запускается
даже на клячах типа 66 Mhz , Win95
Во первых - спасибо за толковый совет !
И у меня вопрос, как инициализировать ? Если там просто.
И можно ли это отлаживать на одном компьютере ? Если да, то как ?
Нет ли где нибудь описание компонента TIdUDPServer на русском ?
← →
Yegorchic © (2005-03-26 12:19) [1]На одном компе отлаживать можно. Просто IP пишите 127.0.0.1 и всё... только получится что и отправитель и получатель будет один человек, т.е. вы. Есть ещё специальные проги, которые создают сеть на одном компе, но я ими не пользовался.
Описание компоненты TIdUDPServer и TIdUDPClient есть в книгах, а в инете я не нашёл.
Вообще TIdUDPServer и TIdUDPClient хорошие компоненты, я на них чат первыё написал, и всё для сети я пишу с помощью них. Вот.
← →
Сеть (2005-03-27 04:06) [2]
> Yegorchic © (26.03.05 12:19) [1]
> Вообще TIdUDPServer и TIdUDPClient хорошие компоненты, я
> на них чат первыё написал
А его исходник можно посмотреть ? А то у меня почему-то ничего себе не присылается.
> На одном компе отлаживать можно. Просто IP пишите 127.0.0.1
> и всё... только получится что и отправитель и получатель
> будет один человек, т.е. вы.
Нужно ли для этого быть подключённым к сети ? И один и тот-же компонент может и отослать и получить данные одновременно ? Или надо два ?
И как правильно инициализировать ?
← →
Змей © (2005-03-27 14:14) [3]у меня исходник чата весит 10 метров :)
← →
Anatoly Podgoretsky © (2005-03-27 14:22) [4]Сеть (27.03.05 04:06) [2]
Сеть про себя все знает.
← →
Eraser © (2005-03-27 14:32) [5]
> Змей ©
И что там? Небось картинки в форамате BMP? )
← →
Сеть (2005-03-28 02:00) [6]
> Змей © (27.03.05 14:14) [3]
> у меня исходник чата весит 10 метров :)
А только код ? Без картинок и прочей фигни.
← →
Сеть (2005-03-29 01:29) [7]Как правильно инициализировать то ?
← →
Nes © (2005-03-30 15:56) [8]Эм..могу конечна поделиться кодом, но мало чё тебе это даст=( ...Сам себе..если хост 127.0.0.1 указать всё работает, если другой, то connеction timeout,по идеи так и должно всё посылать и получаться как у меня(ну по крайне ере так везду написано), но почему не коннесктится не знаю...На этом форуме почему-то тоже по этому поводу молчат
http://delphimaster.net/view/6-1111927099/
← →
Nes © (2005-03-30 15:58) [9]P.S. "везду" --> везде
← →
Digitman © (2005-03-30 16:07) [10]Удалено модератором
Примечание: Поменьше эмоций...
← →
Сеть (2005-04-02 03:40) [11]
> Nes © (30.03.05 15:56) [8]
> Эм..могу конечна поделиться кодом, но мало чё тебе это даст=(
Лучше что-то, чем ничего.
Хочу код !
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.045 c