Текущий архив: 2005.12.25;
Скачать: CL | DM;
Вниз
CllientSoket и ServerSoket Найти похожие ветки
← →
Кабан555 (2005-09-18 22:30) [0]У меня проблема с компонентами CllientSoket и ServerSoket
В клиентской части по событию нажатия кнопки пишу следующее
ClientSocket1.Active:=true;
ClientSocket1.Socket.SendText(Edit2.Text);
ClientSocket1.Active:=false;
из кода видно что на серверную часть посылаеться текст из компонента Edit2
В серверной части в компоненте ServerSoket в событии onClientRead пишу следующее
Socket.active:=true;
s:=Socket.ReceiveText;
Socket.active:=false;
Label1.Caption:=s;
как видно сообщение должно отображаться в компоненте label1
но почему то отображаеться только каждое второе сообщение.
Может я что то не так далаю ?
← →
kami © (2005-09-18 23:42) [1]Не факт, что клиентский сокет сразу после начала подключения (Active:=True) установит соединение, чтобы можно было посылать информацию.
Из постановки вопроса не видно, что после приема информации нужно разрывать соединение, поэтому :
Socket.active:=true; ? Само собой, что сокет активен, иначе OnRead и не вызвалось бы.
Socket.active:=false; ? Разрыв соединения - это специально, или нет ?
Как я понимаю, это тестовая программка. Разнеси действия :
Поставь серверу Active:=True - в design-time;ClientSocket.Active:=True
- на одну кнопку (+ на ClientSocket.OnConnect - визуальное или звуковое оповещение что соединение прошло успешно)
Отправка текста серверу (и только она) - на вторую кнопку.
И в OnClientRead на ServerSocket пиши толькоs:=Socket.ReceiveText;
Label1.Caption:=s;
← →
antoxa2005 (2005-09-19 04:20) [2]Попробуй не
ClientSocket1.Active:=true;
ClientSocket1.Socket.SendText(Edit2.Text);
ClientSocket1.Active:=false;
а ClientSocket1.Active:=false; после ответа клиента серверу, что он получил сообщение.
← →
antoxa2005 (2005-09-19 04:21) [3]"после ответа сервера клиенту"
Страницы: 1 вся ветка
Текущий архив: 2005.12.25;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.049 c