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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.01.2011, 18:23   #1
tehman
 
Регистрация: 18.01.2011
Сообщений: 7
По умолчанию Клиент

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;

type
TForm1 = class(TForm)
ClientSocket: TClientSocket;
Login: TEdit;
Pass: TEdit;
Connect: TButton;
Auth: TButton;
Memo1: TMemo;
procedure ConnectClick(Sender: TObject);
procedure AuthClick(Sender: TObject);
procedure ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ConnectClick(Sender: TObject);
begin

with ClientSocket do
begin
Host:='***';
Port:=****;
Open;


end;
end;

procedure TForm1.AuthClick(Sender: TObject);
var AuthData, UID: string;
begin
Randomize;
UID:=IntToStr(Random(99999999));
AuthData:=#00 + #01 + #00 + '0' + Login.Text + '*' + Pass.Text + '*9*0*' + UID + '**Delphi*';
ClientSocket.Socket.SendText(AuthDa ta);

end;

procedure TForm1.ClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
ShowMessage ('Подключено!');
end;


procedure TForm1.ClientSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(Socket.ReceiveText( ));
end;

end.

почему не выводит сообщение о том что я подключился и в мемо ничего не происходит? хост и порт ввожу верные
tehman вне форума Ответить с цитированием
Старый 18.01.2011, 18:27   #2
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

1) телнет на ваш хост:порт заходит?
2) что SendText() возвращает?
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 18.01.2011, 18:38   #3
tehman
 
Регистрация: 18.01.2011
Сообщений: 7
По умолчанию

телнет вроде цепляется, ошипки не выдает
SendText(AuthData)
рандомная авторизация для сервера
tehman вне форума Ответить с цитированием
Старый 18.01.2011, 18:41   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Да хоть взлом Пентагона. SendText() - это функция. Функции возвращают какие-то значения. Иногда их полезно анализировать.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 18.01.2011, 18:44   #5
tehman
 
Регистрация: 18.01.2011
Сообщений: 7
По умолчанию

значит процедура авториизации не нужна?
procedure TForm1.AuthClick(Sender: TObject);
var AuthData, UID: string;
begin
Randomize;
UID:=IntToStr(Random(99999999));
AuthData:=#00 + #01 + #00 + '0' + Login.Text + '*' + Pass.Text + '*9*0*' + UID + '**Delphi*';
ClientSocket.Socket.SendText(AuthDa ta);
end;
tehman вне форума Ответить с цитированием
Старый 19.01.2011, 00:43   #6
tehman
 
Регистрация: 18.01.2011
Сообщений: 7
По умолчанию

А что не так с SendText() ?
tehman вне форума Ответить с цитированием
Старый 19.01.2011, 00:53   #7
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Может быть всё так. А может и нет. Существует такое поверье, что анализ данных, возвращаемых функциями, позволяет более точно установить причину отказа и избежать пустой траты времени на гадания по кофейной гуще.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 19.01.2011, 01:06   #8
tehman
 
Регистрация: 18.01.2011
Сообщений: 7
По умолчанию

А как проверить так или не так?
tehman вне форума Ответить с цитированием
Старый 19.01.2011, 11:40   #9
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

> как проверить так или не так?

Справка для Пушкина писана ?
Открываешь ее на тему метода SendText и штудируешь "как проверить" - там ВСЁ написано.
mss вне форума Ответить с цитированием
Старый 20.01.2011, 22:22   #10
tehman
 
Регистрация: 18.01.2011
Сообщений: 7
По умолчанию

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    ClientSocket1: TClientSocket;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   with ClientSocket1 do
begin
Host:='****';
Port:=****;
Open; 
end;
end;


procedure TForm1.Button2Click(Sender: TObject);
   var AuthData, UID: string;
begin
Randomize;
UID:=IntToStr(Random(99999999));
AuthData:=#00 + #01 + #00 + '-' + Edit1.Text + '*' + Edit2.Text + '*9*0*' + UID + '**nokia1100*';// ето строка текста для авторизации на сервере и все, числа с решетками заданы четко
ClientSocket1.Socket.SendText(AuthData);
if 

end;


procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
    ShowMessage('Подключились!');
end;

end.
вопрос в том чтобы при удачной авторизации выскочило сообщение что мы авторизовались для этого, как я понимаю, нужно принять пакет и проверить побайтно то что прислал сервер в ответ с той или оной сигнатурой. к сожелению не знаю как проверять побайтно буфер памяти.
tehman вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отправить видео захват(с веб-Кам.) Клиент->Сервер->Клиент RODNOC Мультимедиа в Delphi 17 03.10.2010 22:31
сервер+клиент+клиент на телефон Razyiller Работа с сетью в Delphi 3 01.04.2010 20:10
Возможно-ли Клиент-серверное приложение типа Клиент(Pascal) а сервер(CGI)? Demol Работа с сетью в Delphi 1 21.04.2009 16:18
Клиент-сервер-клиент Кронос Работа с сетью в Delphi 3 24.08.2007 07:57