Форум: "Начинающим";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];
ВнизСетевое приложение Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.034 c