Текущий архив: 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.46 MB
Время: 0.009 c