Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
 
 
Опции темы Опции просмотра
Старый 24.04.2012, 22:06   #31
Новичок
 
Регистрация: 11.04.2012
Сообщений: 3
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Shadrincev пока неопределено
По умолчанию

Приветствую всех, ребят помогите разобраться.
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    log: TMemo;
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Client: TClientSocket;
    Edit2: TEdit;
    Edit3: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    procedure ClientError(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure ClientRead(Sender: TObject; Socket: TCustomWinSocket);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

type
TByteArray = array of byte;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function ByteArrayToHexString(const InArr: array of Byte): string;
var
   tmpStrList: TStringList;
   i: Integer;
begin
   tmpStrList := TStringList.Create;
   try
     for I := Low(InArr) to High(InArr) do
     begin
       tmpStrList.Append(IntToHex(InArr[i], 2));
     end;
     tmpStrList.Delimiter := ' ';
     Result := tmpStrList.DelimitedText;
   finally
     tmpStrList.Free;
   end;
end;

procedure ToLog(log: string);
begin
form1.log.Lines.Add(log);
end;

procedure TForm1.Button1Click(Sender : TObject);
begin
{Если соединение уже установлено - прерываем его.}
  if Client.Active then
  begin
  Client.Active:=False;
  Exit; {...и выходим из обработчика}
  end;
{Присваиваем свойствам Address нужные значения}
  Client.Address:=Edit1.Text;
{Пытаемся открыть сокет и установить соединение}
  Client.Active:=True;
end;

procedure TForm1.Button2Click(Sender : TObject);
 begin
  Client.Active:=False;
 end;

procedure TForm1.ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
ErrorCode := 0;
Socket.Close;
end;

procedure TForm1.ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
   len : integer;
   Buffer : TByteArray;
begin
   ToLog('~~~ Подключились ~~~~~~~~~~~~~~~~');
   ToLog('размер пакета ' + IntToStr(Socket.ReceiveLength)+' bytes');
   setLength(Buffer, Socket.ReceiveLength);
   len := Socket.ReceiveBuf(Buffer[0], Socket.ReceiveLength);
   ToLog('Прочитано в буфере: ' + IntToStr(len) + ' bytes');
   ToLog('Ответ сервера: ' + ByteArrayToHexString(Buffer));

end;

end.
Собственно, соединение устанавливаю, ответ получаю, но не могу понять, что делать дальше, и как из полученного первого пакета получить ключ (не пинать я самоучка). Прошу разжуйте пожалуйста, книги читаю гугл и яндекс мучаю, но немогу разобраться...
Shadrincev вне форума   Ответить с цитированием
 

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 15:04.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!