![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите способ простейшего обмена данными между двумя ip ? ( [D7]
Сеть © (2005-03-26 01:43:00)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 на русском ?
Сеть (2005-04-02 03:40:00) [1]
> Nes © (30.03.05 15:56) [8]
> Эм..могу конечна поделиться кодом, но мало чё тебе это даст=(
Лучше что-то, чем ничего.
Хочу код !
Digitman (2005-03-30 16:07:00) [2]Удалено модератором
Примечание: Поменьше эмоций...
Nes (2005-03-30 15:58:00) [3]P.S. "везду" --> везде
Nes (2005-03-30 15:56:00) [4]Эм..могу конечна поделиться кодом, но мало чё тебе это даст=( ...Сам себе..если хост 127.0.0.1 указать всё работает, если другой, то connеction timeout,по идеи так и должно всё посылать и получаться как у меня(ну по крайне ере так везду написано), но почему не коннесктится не знаю...На этом форуме почему-то тоже по этому поводу молчат
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1111927099&n=4
Сеть (2005-03-29 01:29:00) [5]Как правильно инициализировать то ?
Сеть (2005-03-28 02:00:00) [6]
> Змей © (27.03.05 14:14) [3]
> у меня исходник чата весит 10 метров :)
А только код ? Без картинок и прочей фигни.
Eraser (2005-03-27 14:32:00) [7]
> Змей ©
И что там? Небось картинки в форамате BMP? )
Anatoly Podgoretsky (2005-03-27 14:22:00) [8]Сеть (27.03.05 04:06) [2]
Сеть про себя все знает.
Змей (2005-03-27 14:14:00) [9]у меня исходник чата весит 10 метров :)
Сеть (2005-03-27 04:06:00) [10]
> Yegorchic © (26.03.05 12:19) [1]
> Вообще TIdUDPServer и TIdUDPClient хорошие компоненты, я
> на них чат первыё написал
А его исходник можно посмотреть ? А то у меня почему-то ничего себе не присылается.
> На одном компе отлаживать можно. Просто IP пишите 127.0.0.1
> и всё... только получится что и отправитель и получатель
> будет один человек, т.е. вы.
Нужно ли для этого быть подключённым к сети ? И один и тот-же компонент может и отослать и получить данные одновременно ? Или надо два ?
И как правильно инициализировать ?
Yegorchic (2005-03-26 12:19:00) [11]На одном компе отлаживать можно. Просто IP пишите 127.0.0.1 и всё... только получится что и отправитель и получатель будет один человек, т.е. вы. Есть ещё специальные проги, которые создают сеть на одном компе, но я ими не пользовался.
Описание компоненты TIdUDPServer и TIdUDPClient есть в книгах, а в инете я не нашёл.
Вообще TIdUDPServer и TIdUDPClient хорошие компоненты, я на них чат первыё написал, и всё для сети я пишу с помощью них. Вот.