Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Client_Server [D6, Win2k, WinXP]


Yot ©   (2003-09-10 13:11:00) 

Мастера помогите !!!!!!!
Пишу клиент серверное приложение при соединении с клиентом сервер должен послать сообщение клиенту о соединении при этом на серверного приложения возникает ошибка. ПОМОГИТЕ.

Вот код :

procedure TForm1.Button1Click(Sender: TObject);
begin
Server.Active:=True;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
Server.Active:=False;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Client.Host:=Edit1.Text;
Client.Active:=True;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
Client.Active:=False;
end;

procedure TForm1.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var s:String;
begin
s:=Client.Socket.ReceiveText;
if s="hi" then MessageBox(Application.Handle,"Connection OK","Info",MB_OK);
Client.Active:=False;
end;

procedure TForm1.ServerClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Server.Socket.SendText("hi"); - Тут возникает ошибка !!!!!
Server.Active:=False;
end;


Verg   (2003-09-11 13:57:00) [1]


> Однако, sleep(200) выручал меня всегда, во всяком случае,
> в локалке...


Ну что ж, удачи.


Digitman   (2003-09-11 13:48:00) [2]


> Deff


стоит только чуть измениться программно-аппаратной конфигурации твоей "локалки" - и твои sleep(200) коту под хвост..

равносильно тому что подстроившись по своим наручным часам под обычный вроде бы интервал движения электрички, ты рано или поздно опоздаешь на нее


Deff   (2003-09-11 13:31:00) [3]

Да ,верг, вы правы.
Однако, sleep(200) выручал меня всегда, во всяком случае, в локалке...


Verg   (2003-09-11 12:33:00) [4]

Начинать передавать данные в сокет можно только после получения события
ServerSocket1ClientWrite(Sender: TObject; Socket: TCustomWinSocket);

До этого возникают события Connect и Accept.

Вот поэтому создается впечатление (обманчивое!), что sleep(2000) в Connect-е помогает.


Digitman   (2003-09-11 08:13:00) [5]


> Deff


это еще зачем ? где это документировано ?


Deff   (2003-09-10 22:51:00) [6]

Такое бывает... Просто сделай перед
Socket.SendText("hi");
такое:
sleep(200);


Digitman   (2003-09-10 13:55:00) [7]


> НЕ получается


что ?


Yot   (2003-09-10 13:25:00) [8]

НЕ получается


panov   (2003-09-10 13:15:00) [9]

procedure TForm1.ServerClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Server.Socket.SendText("hi"); - Тут возникает ошибка !!!!!
Server.Active:=False;
end;


procedure TForm1.ServerClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Socket.SendText("hi");- Тут возникает ошибка !!!!!
Server.Active:=False;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо