На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Соблюдайте общие правила форума
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Указывайте точные версии Delphi и используемых сетевых библиотек.

Не приветствуется поднятие старых тем. Если ваш вопрос перекликается со старой темой, то для вопроса лучше создать новую тему, а старую указать в первом сообщении с описанием взаимосвязи.

Внимание:
попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Krid, user posted image Rouse_

Модераторы: Krid, Rouse_
  
> Посылка Cookies на сервер , при помощи ClientSocket.
    Как можно реализовать посылку Cookies на сервер? при помощи ClientSocket.
      Нет ничего проще, добавляешь в header секцию Cookies в которую пишешь твои кукисы и отправляешь...
        я пишу так

        ExpandedWrap disabled
          var
            c: Char;
            MySocket: TWinSocketStream;
            logined: string; i:integer;
            Socket: TCustomWinSocket;
          begin
           MySocket := TWinSocketStream.Create(Socket, 60000);
           
           edit3.Text:='No';
           ClientSocket1.Host:=edit1.Text;
           ClientSocket1.port:=SpinEdit1.Value;
           ClientSocket1.Active:=true;
           ClientSocket1.Open;
           
          for i:=0 to 15 do
           begin
            logined:=memo1.Lines[i]+#13;
            mySocket.Write(logined, Length(memo1.Lines.text));
           end;
           while not MySocket.WaitForData(100) do
            Application.ProcessMessages;
            if MySocket.Read(c, 1)=1 then
             edit3.Text:='Yes';
           
            MySocket.Free;
           
          end;
           
          end.




        в memo находится такой запрос

        ExpandedWrap disabled
          POST /login.php HTTP/1.1
          Host: www.уу.ru
          User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
          Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
          Accept-Language: en-us
          Accept-Charset: windows-1251,utf-8,iso-8859-1;q=0.3,*;q=0.1
          Keep-Alive: 300
          Referer: http://уу/login.php
          Cookie: phpbb2mysql_data=a%3A0%3A%7B%7D; phpbb2mysql_sid=cff8b0b526a221553bc23ee57a8daee4
          Content-Type: application/x-www-form-urlencoded
          Content-Length: 54
          Connection: keep-alive
          Accept-Encoding: gzip,deflate
          TE: gzip,deflate



        и у меня выскакивает вот такая ошибка socket must be in blocking mode


        Что это может значить и правельно ли я пишу?
          Цитата 0n!k @
          ClientSocket1.Host:=edit1.Text;
          ClientSocket1.port:=SpinEdit1.Value;
          ClientSocket1.Active:=true;
          ClientSocket1.Open;

          Где ты это пишешь?
          Судя по всему в обработчике OnConnect ClientSocket1.
          Если да, то у тебя уже есть соединение а ты пытаешься установить его снова.
          И еще ClientSocket1.Active:=true и ClientSocket1.Open одно и тоже.
          Цитата 0n!k @
          и у меня выскакивает вот такая ошибка socket must be in blocking mode

          Судя по всему ClientSocket1.ClientType у тебя ctNonBlocking.
          Не проще в обработчике OnConnect сделать Socket.SendText(Memo1.text+#13#10#13#10);
          а в обработчике OnRead - Tmp:=Tmp+Socket.ReceiveText; где Tmp - глобальная переменная.
          Ну и в OnDisconnect обрабатывать Tmp.
            Всеравно ошибка socket must be in blocking mode



            Вот исходник
              попробуй так
              ExpandedWrap disabled
                unit Unit1;
                 
                interface
                 
                uses
                Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
                  Dialogs,ScktComp, StdCtrls, Spin;
                 
                type
                  TForm1 = class(TForm)
                    ClientSocket1: TClientSocket;
                    Button2: TButton;
                    Memo1: TMemo;
                    Edit1: TEdit;
                    Edit3: TEdit;
                    SpinEdit1: TSpinEdit;
                    procedure Button2Click(Sender: TObject);
                    procedure ClientSocket1Connect(Sender: TObject;
                      Socket: TCustomWinSocket);
                    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
                    procedure ClientSocket1Disconnect(Sender: TObject;
                      Socket: TCustomWinSocket);
                  private
                    { Private declarations }
                  public
                    { Public declarations }
                  end;
                 
                var
                  Form1: TForm1;
                  Tmp:string;
                implementation
                 
                {$R *.dfm}
                 
                procedure TForm1.Button2Click(Sender: TObject);
                begin
                 edit3.Text:='No';
                 ClientSocket1.Host:=edit1.Text;
                 ClientSocket1.port:=SpinEdit1.Value;
                 ClientSocket1.Open;
                end;
                 
                 
                procedure TForm1.ClientSocket1Connect(Sender: TObject;
                  Socket: TCustomWinSocket);
                begin
                Socket.SendText(memo1.Lines.text+#13#10);
                end;
                 
                procedure TForm1.ClientSocket1Read(Sender: TObject;
                  Socket: TCustomWinSocket);
                begin
                Tmp:=Tmp+Socket.ReceiveText;
                end;
                 
                procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
                  Socket: TCustomWinSocket);
                begin
                ShowMessage(Tmp);
                end;
                 
                end.
              1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0279 ]   [ 15 queries used ]   [ Generated: 18.05.24, 22:07 GMT ]