Главная страница
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.051 c
2-1151651681
FFFF
2006-06-30 11:14
2006.07.16
Как открыть документ Word


6-1141999988
guru-ru
2006-03-10 17:13
2006.07.16
Как правильно отправлять запрос на сервер через idHTTP?


15-1150446347
antoxa2005
2006-06-16 12:25
2006.07.16
Что выбрать MySQL, FireBird или просто Access?


15-1150234030
Piter
2006-06-14 01:27
2006.07.16
Распечатка A1 на принтере A4


3-1147422894
Patrick
2006-05-12 12:34
2006.07.16
Добавление в таблицу из XML-документа