Главная страница
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.025 c
15-1179200465
Сынок
2007-05-15 07:41
2007.06.10
Как определиться с профессией?


15-1179175118
TStas
2007-05-15 00:38
2007.06.10
Есть к кого дистрибутив 5-й или ниже аськи?


1-1176349420
__DATA__
2007-04-12 07:43
2007.06.10
"Кракозябры" вместо русских букв при получении HTMLa WEBстраницы


15-1179303837
TUser
2007-05-16 12:23
2007.06.10
Создание инсталяшки ... опять


2-1179418874
Skynet_
2007-05-17 20:21
2007.06.10
Двойной щелчек по выделенной строке в DBGride