Главная страница
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.031 c
3-1174343198
DENMEN
2007-03-20 01:26
2007.06.10
Что удобней для модификации данных IBQuery или IBDataset?


5-1155885569
karachun
2006-08-18 11:19
2007.06.10
Эксперт для создания компонентов


2-1179578791
Dib
2007-05-19 16:46
2007.06.10
.bmp на кнопку.


2-1179409650
Тимоха
2007-05-17 17:47
2007.06.10
цвет в итеме


15-1179482976
Ega23
2007-05-18 14:09
2007.06.10
фармацефты - отзовитесь!