![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
передача данных по сети
Тимофей Юрьевич © (2006-06-15 13:57:00)подскажите как быть и что использовать,задача такая:
клиент открывает форму,вписывает логин/пароль нажимает кнопку,по нажатию кнопки данные должны отсылаться на сервер,там проверяется если такой пользователь и пароль к нему,если да,то открывается основное окно у клиента.
Как реализовать? Спасибо
medved_68 (2006-06-16 11:55:00) [1]Если подключено несколько клиентов и один из подключенных что там передал
Сергей М. (2006-06-16 10:58:00) [2]
> medved_68 © (16.06.06 10:43) [35]
Ну и зачем нужен этот цикл в обработчике события OnСlientRead ?
medved_68 (2006-06-16 10:43:00) [3]
> clientsocket1.Host:='***';
> clientsocket1.Active:=true;
Далее в клиенте пропиши
procedure ClientSocketOnConnect
begin
ClientSocket1.Socket.SendText('I am Vasja');
end;
procedure ClientSocketOnRead
var
sd:string;
begin
sd:=ClientSocket1.Socket.ReciveText;
...А дальше что хочешь делай с принятой строкой
end;
на сервере подними
procedure ServerSocket1.OnСlientRead
var
i:integer;
begin
for i:=0 to ServerSocket1.Socket.ActiveConnections do
begin
if ServerSocket1.Socket.Connections[i].ReciveLength > 0
then
begin
......либо принимаем данные и проверяем
....либо что то отправляем этому клиенту
end;
end;
И все должно работать как часы в режиме stNonBlocking;
jb (2006-06-15 18:59:00) [4]Короче есть у TClientSocket событие OnConnect там пиши как ему текст отправлять. Хошь пример на мыло?
Тимофей Юрьевич (2006-06-15 18:54:00) [5]все понял,все норм работает если флаг ctNonBlocking,но при этом опять проблема при нажатии кнопки послать,срабатывает дествие только со второго раза
Тимофей Юрьевич (2006-06-15 18:19:00) [6]народ,подсобите плиз
Тимофей Юрьевич (2006-06-15 17:49:00) [7]а как сервер понимает что отправка идет клиенту и его хост
if socket.ReceiveText = 'bagos/timatima' then
socket.sendtext('Start');
???
Сергей М. (2006-06-15 16:57:00) [8]Плохо.
Срочно учись им пользоваться.
Тимофей Юрьевич (2006-06-15 16:56:00) [9]тапком не дается!)
это компилятор,отладчиком пользоваться не умею :(
Сергей М. (2006-06-15 16:50:00) [10]
> вылезает ошибка
А ты ее тапком ! Тапком !)
Эт что, отладчик показал ту самую ошибку ? Или "что вижу, то и пою" ?
Тимофей Юрьевич (2006-06-15 16:44:00) [11]вылезает ошибка
Asynchronous socket error 10053
Сергей М. (2006-06-15 16:42:00) [12]Ну так воспользуйся им !
В чем дело-то ?
Тимофей Юрьевич (2006-06-15 16:11:00) [13]не,не в первый;)
Сергей М. (2006-06-15 16:00:00) [14]На то есть отладчик.
Воспользовался им ?
Или первый раз в жизни слышишь это слово ?
Тимофей Юрьевич (2006-06-15 15:53:00) [15]данные от сервера к клиенту не передаются
Сергей М. (2006-06-15 15:50:00) [16]Ну и ?
В ЧЕМ запутался-то ?
Тимофей Юрьевич (2006-06-15 15:32:00) [17]чет я запутался,
в сервере получается
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
if socket.ReceiveText = 'bagos/timatima' then
while Socket.SendText('vvvvvvv') = -1 do
Application.Processmessages;
end;
в клиенте
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
edit3.Text:=socket.ReceiveText;
end;
Сергей М. (2006-06-15 15:24:00) [18]Это уж тебе визнее, что ты туда "впишешь".
А смысл и назначение метода ReceiveText при этом остается неизменным
Тимофей Юрьевич (2006-06-15 15:23:00) [19]в onread клиента надо вписать
edit3.Text:=socket.ReceiveText; ???
Сергей М. (2006-06-15 15:22:00) [20]Ну тады бросай затею