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

Вниз

Socket s   Найти похожие ветки 

 
xZorg   (2006-06-27 09:20) [0]

Здравствуйте у меня вот в чем проблема.
Пишу DLL-ку, в которой есть процедура:
procedure T_ClientTCP.ConnectToServ(Address: string; Port: string);
begin
  ClientSocket1 := TClientSocket.Create(nil);
  ClientSocket1.Active := false;
  ClientSocket1.Host := address;
  ClientSocket1.Port := StrToInt(Port);
  ClientSocket1.ClientType := ctNonBlocking;
  ClientSocket1.Active := true;

  ShowMessage("Соединение установлено");
end;

Проблема вот в чем, если закоментарить это сообщение, то он просто напросто не отошлет ничего серверу.
Процедура которая отсылает сообщения:

procedure T_ClientTCP.SendMess(st: string);
begin
    ClientSocket1.Socket.SendText(st);
    ClientSocket1.Destroy;
end;
Помогите разобраться!


 
Пусик ©   (2006-06-27 10:01) [1]


> ClientSocket1.Destroy;


Ты уверен, что не закроешь сокет до того, как все данные будут переданы?
TClientSocket/TServerSocket используют событийную модель.


 
xZorg   (2006-06-27 10:16) [2]

это я потом отлажу. мне интересно почему не работает если сообщение не выведу?!!!!


 
po4ti novi4ok   (2006-06-27 10:20) [3]

какое сообщение?


 
Seeker ©   (2006-06-27 11:05) [4]


> мне интересно почему не работает если сообщение не выведу?
> !!!!

Интересно, а когда ты отсылаешь сообщение?


 
Belorus ©   (2006-06-27 13:13) [5]

ShowMessage("Соединение установлено"); - видимо он об этом сообщении.

Своеобразный стоп-кран в выполнении фукции.


 
xZorg   (2006-06-27 13:45) [6]

Так как мне без этого обойтись.
В этом на самом деле большая проблема состоит.
Ведь клиент у меня получается в DLL - шке, а сервер просто приложение, то с горем пополам получается сообщение передать.  А когда  обратно пытаюсь отослать (Из клиента-приложения на сервер - DLL), то вообще чума. Кто нибудь сталкивался с такой проблемой?


 
Пусик ©   (2006-06-27 13:50) [7]

ClientSocket1.Active := true;
while not  ClientSocket1.Connected do Application.ProcessMessages;
ClientSocket1.Socket.SendText(st);


 
Пусик ©   (2006-06-27 13:51) [8]

Только надо учесть, что ClientSocket1.Connected может не случиться никогда.


 
xZorg   (2006-06-27 14:06) [9]

Так не прокатит:
while not  ClientSocket1.Connected do Application.ProcessMessages;
я же говорю это DLL, какой там APPLICATION .ProcessMessages?


 
Пусик ©   (2006-06-27 15:12) [10]


> xZorg   (27.06.06 14:06) [9]
> Так не прокатит:while not  ClientSocket1.Connected do Application.
> ProcessMessages;я же говорю это DLL, какой там APPLICATION
> .ProcessMessages?


Значит любым другим способом ожидание делай.


 
Сергей М. ©   (2006-06-27 15:38) [11]


> xZorg   (27.06.06 14:06) [9]
>
> Так не прокатит


"Прокатит", если сильно приспичит.


> это DLL, какой там APPLICATION .ProcessMessages?


А почему его там не должно быть ?



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

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

Наверх




Память: 0.49 MB
Время: 0.039 c
15-1150560517
TUser
2006-06-17 20:08
2006.07.16
Рассылочка пришла


2-1151305265
novill
2006-06-26 11:01
2006.07.16
Как узнать размер текстового файла (Textfile)?


1-1149146393
k_serg
2006-06-01 11:19
2006.07.16
ввод даннах в AutoCad


2-1151630252
NigthSkif
2006-06-30 05:17
2006.07.16
Tedit


15-1150125355
Гарри Поттер
2006-06-12 19:15
2006.07.16
Как прочитать покоцаный СД?