Делфи и Маил ру агент, отправка СМС

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by bertys, 23 Mar 2012.

  1. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте, у меня есть готовый пример для отправки СМС через маил ру агент взятый отсюда, на основе компонента от BOBAH13.

    С кодом все вроде понятно, но есть одна проблема, никак не могу впихнуть прокси.

    Нужно чтото дописать в компоненте от BOBAH13, но я уже неделю пытаюсь это сделать, и ничего не получается, подскажите как можно такое осуществить.
     
  2. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    В файле client.pas есть клас TClientSocket, который используется в основном компоненте. Тебе нужно должным образом изменить метод DoConnect класа TClientSocket, чтобы реализовать поддержку прокси. О работе с Socks 4/5 прокси можешь найти информацию в поисковике.
     
  3. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    Chrome~, подскажи если не сложно что менять, не могу понять

     
  4. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Очень поверхносто смотрел...

    Код, который нужно подредактировать находится в методе Execute, а DoConnect может вызывать пользовательскую функции после успешного коннекта.
     
    1 person likes this.
  5. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    Чет вообще не могу разобратся =(((


    PHP:
    procedure TClientSocket.Execute;
    var
     
    addrsockaddr_in;
     
    FDSetTFDSet;
     
    TimeValTTimeVal;
     
    LenInteger;
    begin
     FLastError
    := NotError;
     
     
    FSocket:= winsock.socket(AF_INETSOCK_STREAMIPPROTO_IP);
     if 
    FSocket INVALID_SOCKET then
     begin
      FLastError
    := NotCreateSocket;
      
    Synchronize(DoError);
      
    Free;
      Exit;
     
    end;
     
     
    ZeroMemory(@addrSizeOf(sockaddr_in));
     
    addr.sin_family:= AF_INET;
     
    addr.sin_port:= htons(FPort);
     
    addr.sin_addr.S_addr:= inet_addr(PCHAR(FHost));
     if 
    winsock.connect(FSocketaddrSIZEOF(sockaddr_in)) = SOCKET_ERROR then
     begin
      closesocket
    (FSocket);
      
    FLastError:= NotConnect;
      
    Synchronize(DoError);
      
    Free;
      Exit;
     
    end;
     
     
    Synchronize(DoConnect);
     
     while 
    not Terminated and (FSocket <> INVALID_SOCKET) do
     
    begin
      FD_ZERO
    (FDSet);
      
    FD_SET(FSocketFDSet);
      
    TimeVal.tv_sec:= 0;
      
    TimeVal.tv_usec:= 500;
      if (
    select(0, @FDSetnilnil, @TimeVal) > 0) and not Terminated then
      begin
       ioctlsocket
    (FSocketFIONREADLen);
       if 
    Len 0 then
        
    Break
       else
        
    Synchronize(DoRead);
      
    end;
     
    end;
     
     
    Free;
    end;
     
  6. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    В первой части кода не нужно никаких изменений... Во второй: подключаешься с помощью winsock.connect к прокси серверу, формируешь пакеты для отправки в зависимости от того, с каким прокси сервером ты работаешь (Socks 4/5) и отправляешь их. Больше никаких исправлений не потребуется.
     
  7. 1nf3rn0

    1nf3rn0 New Member

    Joined:
    3 Mar 2012
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    менять здесь надо?
    begin
    ioctlsocket(FSocket, FIONREAD, Len);

    я правильно ж понимаю?

    Что для закрепления сетевого программирования на делфе почитать порекомендуешь?
     
  8. mironich

    mironich Elder - Старейшина

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    Если именно сокеты то, "Игры на сокетах", http://forum.antichat.ru/thread123692-%D1%EE%EA%E5%F2%FB+Delphi.html
     
  9. bertys

    bertys New Member

    Joined:
    25 Jan 2012
    Messages:
    162
    Likes Received:
    0
    Reputations:
    0
    АП...