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

Вниз

ClientSocket посылает строку только со второго раза!   Найти похожие ветки 

 
sergrrey ©   (2002-06-28 10:33) [0]

Может кто встречал?
На форме только TClientSocket, TServerSocket и TButton
procedure TForm1.Button2Click(Sender: TObject);
begin
SS1.Active := true;
CS1.Host := "localhost";
CS1.Open;
CS1.Socket.SendText("Hi");
end;
Но сервер начинает это получать только со второго раза!


 
Digitman ©   (2002-06-28 12:25) [1]

Логика обработки события TServerSocket.OnClientRead(), реализованная тобой, некорректна или неверна в принципе.


 
sergrrey ©   (2002-06-28 12:46) [2]

Та самая логока:

procedure TForm1.SS1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
ShowMessage(Socket.ReceiveText);
end;


 
Digitman ©   (2002-06-28 13:46) [3]

Неверна она !
Впрочем, так же как и логика передатчика.


 
Wizard_Ex ©   (2002-06-28 19:32) [4]

Разбей на две части
одной кнопкой открывай сокет
другой отсылай чего-нибудь

.. CS1.Open;
.. CS1.Socket.SendText("Hi");
Он еще открыться не успевает


 
Malder ©   (2002-06-28 22:25) [5]

Верно.

1) CS1.Open;
2) CS1.Socket.SendText("Hi");

Первая комманда инициализирует подключение, но не ждет самого факта подключения, а сразу передает управление второй комманде. Но вполне естесственно, что вторая команда получает управление раньше, чем сокет успеет соединиться. Соответственно, получается попытка отослать данные ДО того, как произошло подключение. Из-за чего код и не работает.
Но также вполне очевидно, что когда ты нажмешь второй раз на кнопку, то сокеты уже соединены. Комманда CS1.Open; уже ничего не делает. А следущая за ней комманда CS1.Socket.SendText("Hi"); отсылает текст.


 
Digitman ©   (2002-07-01 08:18) [6]

О факте реального коннекта говорит событие OnConnect()
О факте готовности передатчика после установления коннекта говорит событие OnWrite().
Отсюда и "плясать" нужно.


 
Grrey   (2002-07-02 15:34) [7]

Спасибо, ошибку понял!



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
3-26899
Art1
2002-08-20 11:04
2002.09.09
Как закрыть парадоксовские базы паролем?


1-26974
iq0
2002-08-29 14:21
2002.09.09
посмотр презентаций PowerPoint, или установка PowerPoint Viewer


14-27158
ReapeR
2002-08-13 11:37
2002.09.09
Delphi 7


14-27229
Artemkin
2002-08-15 20:23
2002.09.09
Капут Видюхе ???


7-27254
Tiger
2002-06-29 01:13
2002.09.09
Reboot, Shut Down, Ждущий режим и т.п. на Windows XP