Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2010, 16:10   #1
Federal
Пользователь
 
Регистрация: 21.05.2010
Сообщений: 77
По умолчанию Создание аккаунта и вход в аккаунт (ЧАТ)

Создал простенький клиент и сервер (ЧАТ) с помощью ServerSocket и ClientSocket:
но вот беда не могу грамотно написать код для регистрации аккаунта и входа в аккаунт:
http://dump.ru/file/4696953
Цитата:
var
//////klient//////
i1,i2,i3,i4: integer;
p1,p2,p3,p4,pppp: integer;
t1,t2,t3,t4: string;
vhod,reg,server,srt,sr:string;
//////server//////
S,S1,S2,S3,Sv,Sk:string;
R: array[1..20] of String;
i,p,pp,ppp:integer;
m,v:boolean;
///////////////////////////////////////////////
///////////////////KLIENT//////////////////////
///////////////////////////////////////////////
procedure TForm1.Button1Click(Sender: TObject);
//ВХОД
begin
t1:=Edit1.Text; t2:=Edit2.Text;
i1:=Edit1.GetTextLen; i2:=Edit2.GetTextLen;
p1:=10-i1; p2:=10-i2;
for p1:=1 to p1 do begin t1:=t1+' '; end;
for p2:=1 to p2 do begin t2:=t2+' '; end;
vhod:='01'+t1+t2;
ClientSocket1.Socket.SendText(vhod) ;
end;

procedure TForm1.Button2Click(Sender: TObject);
//РЕГИСТРАЦИЯ
begin
t3:=Edit3.Text; t4:=Edit4.Text;
i3:=Edit3.GetTextLen; i4:=Edit4.GetTextLen;
p3:=10-i3; p4:=10-i4;
for p3:=1 to p3 do begin t3:=t3+' '; end;
for p4:=1 to p4 do begin t4:=t4+' '; end;
reg:='00'+t3+t4;
ClientSocket1.Socket.SendText(reg);
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
Server:=Socket.ReceiveText;
for pppp:=1 to 2 do Sr:=Sr+Server[pppp];
if Sr='99' then
begin
Srt:=Server;
Memo3.Lines.Add(Srt);
end;
Server:='';Srt:='';Sr:='';
end;
///////////////////////////////////////////////
///////////////////SERVER//////////////////////
///////////////////////////////////////////////
procedure TForm1.ServerSocket1ClientRead(Send er: TObject;
Socket: TCustomWinSocket);
//ЧИТАЕМ
begin
S:=Socket.ReceiveText;
for pp:=1 to 2 do S1:=S1+S[pp];
////РЕГИСТРАЦИЯ
if S1='00' then
begin
for pp:=3 to 22 do S2:=S2+S[pp];
for pp:=3 to 12 do S3:=S3+S[pp];
m:=true;
for pp:=1 to i do
begin
Sv:=R[pp];
for ppp:=1 to 10 do Sk:=Sk+Sv[ppp];
if Sk=S3 then
begin
m:=false;
For i := 0 to ServerSocket1.Socket.ActiveConnecti ons - 1 do
ServerSocket1.Socket.Connections[i].SendText('99АККАУНТ СУЩЕСТВУЕТ');
end;
end;
if m=true then
begin
i:=i+1;
R[i]:=S2;
end;
Sk:=''; Sv:=''; S3:=''; S2:='';
end;
////ВХОД
if S1='01' then
begin
for pp:=3 to 22 do S2:=S2+S[pp];
v:=false;
for pp:=1 to i do
begin
Sv:=R[pp];
for ppp:=1 to 20 do Sk:=Sk+Sv[ppp];
if Sk=S2 then v:=true;
end;
if v=true then
begin
/////PROCHLO
end;
Sk:=''; Sv:=''; S2:='';
end;
S1:=''; S:='';
end;
Federal вне форума Ответить с цитированием
Старый 27.07.2010, 16:45   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Протокол ужасен.
Код, реализующий протокол еще ужаснее.
В условиях глоб.сети код работать попросту не будет.
mss вне форума Ответить с цитированием
Старый 27.07.2010, 19:10   #3
Federal
Пользователь
 
Регистрация: 21.05.2010
Сообщений: 77
Вопрос

Ну расскажите уж какие лучше компоненты применять
-по какому принципу должен регистрироватся аккаунт
-как хранить данные об аккаунте на сервере
-и по какому принципу должен входить клиент в аккаунт...
Цитата:
Протокол ужасен.
Код, реализующий протокол еще ужаснее.
В условиях глоб.сети код работать попросту не будет.
С этим я согласен-но я нуб в программировании мне надо пальцем тыкнуть чтоб до меня дошло

Последний раз редактировалось Federal; 27.07.2010 в 19:12.
Federal вне форума Ответить с цитированием
Старый 27.07.2010, 19:54   #4
ImmortalAlexSan
Участник клуба
 
Аватар для ImmortalAlexSan
 
Регистрация: 13.01.2009
Сообщений: 1,353
По умолчанию

Я бы вам, Federal, посоветывал бы освоить WinSock. Вот подробная информация о нем и ещё кое о чем: http://delphikingdom.ru/asp/viewitem.asp?catalogid=1060 Это вторая часть, первая называется так же только первое слово заменено на "первая", найдете сами. Ознакомьтесь с этим материалом и многие вопросы исчезнут сами собой. И теперь, почему я рекомендую ВинСок, он в отличии от того, что вы используете имеет бОльшую гибкость, но и в конце-концов поймете что находится внутри тех компонентов, которые используете вы. А что косается авторизации (так правильно называется этот термин), то скажу следующее: после ввода логина и пароля, по нажатии на кнопку ОК (или у вас по-другому) должно отправляться серверу сообщение, которое содержит эти два параметра (логин, пароль), в это время, чтобы пользователь не думал, что прога висит, ставите фоновую загрузку, когда сервер доходит до обработки вашего сообщения, он, обработав его, отправляет вам ответ, который может содержать что угодно, например:"ОК", а клиент, приняв это сообщение, проверяет его текст, если ОК=ОК, то продолжаем работу клиента дальше. (т.е. мы авторизованы и видим другие контакты)
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
ImmortalAlexSan вне форума Ответить с цитированием
Старый 28.07.2010, 07:52   #5
Federal
Пользователь
 
Регистрация: 21.05.2010
Сообщений: 77
По умолчанию

Очень хороший материал. Спасибо большое!!!
Federal вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна рабочая программа для взлома аккаунта вконтакте Grom007 Фриланс 22 13.12.2011 23:55
заблокировали аккаунт вконтакте Drew666 Безопасность, Шифрование 10 30.05.2010 14:29
Аккаунт Google Levsha100 Свободное общение 16 11.11.2009 14:22
Hmailserver, регистрация аккаунта A_r_r_a_y PHP 2 01.09.2009 00:42
Как включить выбор домена при вводе аккаунта? Stilet Операционные системы общие вопросы 2 18.08.2008 08:40