Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.10;
Скачать: CL | DM;

Вниз

Сетевое приложение   Найти похожие ветки 

 
News   (2007-05-18 14:25) [0]

Здравствуйте! Пытаюсь разобраться с написанием сетевых приложений в Delphi, набрал простенький код, но он не работает. Подскажите, пожалуйста, что я делаю не так?

Код для клиента:unit Unit2;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, IdComponent, IdUDPClient, IdUDPServer, IdBaseComponent, IdUDPBase;

type
 TForm2 = class(TForm)
   Edit1: TEdit;
   Button1: TButton;
   IdUDPClient1: TIdUDPClient;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form2: TForm2;

implementation
uses Server;
{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
IdUDPClient1.Active:=true;
IdUDPClient1.Send(Edit1.Text);
IdUDPClient1.Active:=false;
end;
end.

Код для сервера:
unit Server;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, IdComponent, IdUDPServer, IdUDPClient, IdSocketHandle,
 IdBaseComponent, IdUDPBase;
type
 TForm1 = class(TForm)
   IdUDPServer1: TIdUDPServer;
   Memo1: TMemo;
   procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
     ABinding: TIdSocketHandle);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
var
 Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
 ABinding: TIdSocketHandle);
begin
 Memo1.Clear;
 Memo1.Lines.LoadFromStream(AData);
end;
end.
Суть в том, чтобы при нажатии кнопки на форме клиента введенная в эдит строка выводилась в мемо у сервера, но при запуске либо вообще ничего не происходит, либо вылетает ошибка "Error Socket #100449". В свойстве Bindings я задаю IP-адрес 127.0.0.1, порт 0.


 
DVM ©   (2007-05-18 14:28) [1]


> В свойстве Bindings я задаю IP-адрес 127.0.0.1, порт 0.

То есть ты пытаешься открыть все порты? А часть из них занята. Сервер не стартует. Открывай только нужные тебе порты.


 
News   (2007-05-18 15:03) [2]


> Открывай только нужные тебе порты.

Какие? Дело в том, что я вообще не знаю, какие нужно открывать.


 
DVM ©   (2007-05-18 15:05) [3]


> Дело в том, что я вообще не знаю, какие нужно открывать.

Бери любой выше 1000, только одинаковый у клиента и сервер


 
Сергей М. ©   (2007-05-18 15:07) [4]


> я вообще не знаю, какие нужно открывать


Ну так в таком случае не трогай св-во Bindings вообще.


 
News   (2007-05-18 17:02) [5]


> Бери любой выше 1000, только одинаковый у клиента и сервер

Взял 6000, ничего не изменилось.


 
Savek   (2007-05-18 17:39) [6]

На сервере сокет кто будет отрывать?


 
Новичек ©   (2007-05-18 17:47) [7]

Имелось в виду открывать :-)


 
News   (2007-05-18 19:16) [8]

Понимаете, я совсем-совсем новичок, и многого не знаю. Как открыть сокет на сервере?


 
turbouser ©   (2007-05-18 20:45) [9]


> News   (18.05.07 19:16) [8]

Посмотрите уже примеры.
http://www.indyproject.org/Sockets/Demos/index.EN.aspx



Страницы: 1 вся ветка

Текущий архив: 2007.06.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
15-1179142304
elserpiente
2007-05-14 15:31
2007.06.10
комопнент для обновления программы


4-1167360583
kernel
2006-12-29 05:49
2007.06.10
OnShow чужого приложения


2-1179416636
Kostafey
2007-05-17 19:43
2007.06.10
Запрет на редактирование/удаление записи по значению


15-1179324164
GeLLeR
2007-05-16 18:02
2007.06.10
Что-бы такого написать...


15-1179151025
Cyrax
2007-05-14 17:57
2007.06.10
Как, пользуясь правилами данного форума, определить судьбу...