Конференция "Прочее" » html для отправки строки на сервер
 
  • 6136 © (26.08.11 18:40) [0]
    Здравствуйте,

    воспользовался примером сервера с использованием компонента TIdTCPServer,
    его свойства
    DefaultPort 4444
    Active true
    имя приложения srv.exe
    (сам пример ниже)

    с telnet обмен проходит нормально:
    ввожу: telnet 127.0.0.1 4444
    отвечает:Type an integer and Enter
    ввод: 4  (сервер принимает и в окошке memo1 сервера отображается "4")
    отвечает: 4  squared is 16 и сообщает о разрыве соединения
    ----
    пытаюсь отправить строку на этот же сервер со страницы index.html
    srv.exe и index.html находятся в /interpub/wwwroot/

    на ней размещаю:
    <form action="127.0.0.1 4444" method="post">
     <input size="60" name="From">
     <p><input value="Отправить" type="submit"> </p>
     <p></p>
    </form>

    пробовал варианты action, например,
    action="http://localhost/srv.exe"

    в чем ошибка?
    при нажатии кнопки в index.html сообщение о невозможности отобразить страницу.

    Спасибо

    procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
    var s: String;
       i: Integer;
    begin
    with AThread.Connection do
    try
    WriteLn('Type an integer and Enter');
    s := ReadLn;
    memo1.Lines.Add(s);
    try
    i := StrToInt(s);
    WriteLn(s + ' squared is ' + IntToStr(i*i));
    except
    WriteLn(s + ' is not an integer');
    end;
    finally
    Disconnect;
    end;  end;

    добавил вывод поступающей строки в окошко TMemo

    получил приложение
    srv.exe
    ----
  • wicked © (26.08.11 20:36) [1]
    потому что telnet шлет в сокет сырые данные, которые читает твоя программа

    а браузер использует для этого http протокол - http://ru.wikipedia.org/wiki/HTTP

    поэтому, если хочешь посылать данные из браузера, тебе в программе нужно реализовать функциональность http сервера
  • 6136 © (26.08.11 23:34) [2]
    спасибо,
    с TIdHTTPServer что-то получилось,
    данные, введенные в браузере на страничке index.html,
    сервер получает и отображает в окошке,

    неприятность: после нажатия кнопки ввода данных браузер вместо index.html пытается отобразить http://localhost:4444
    4444 - порт, который я назначил серверу (приложение HTTPsrv.exe)

    что нужно сделать, чтобы в браузере оставалась страничка index.html?
  • wicked © (26.08.11 23:44) [3]
    ну так пости свои данные на http://localhost:4444/index.html
  • 6136 © (27.08.11 10:17) [4]
    не помогло, получается то же
    правильно ли я понял?

    в index.html исправил так:
    <form action="http://localhost:4444/index.html" method="post">
     <input size="60" name="From">
     <p><input value="Отправить" type="submit"> </p>
     <p></p>
    </form>
  • Медвежонок Пятачок © (27.08.11 12:10) [5]
    не помогло, получается то же

    при нажатии кнопки в index.html сообщение о невозможности отобразить страницу.

    Ну правильно. Страницу-то никто не сформировал и не отдал обратно.
  • 6136 © (27.08.11 12:53) [6]
    где (в index.html или в в приложении сервера HTTPsrv.exe) и как именно указать, что после POST страница в браузере должна вернуться (или остаться?) та же, index.html, в которой вводилась строка для передачи методом POST?

    index.html - html-стрница по умолчанию (загружается при наборе в браузере http://localhost)
    физически index.html и серверное приложение HTTPsrv.exe размещаются в папке сервера с:\Inetpub\wwwroot

    не могли бы вы привести строку кода (если это лишь строка), позволяющую вернуть в браузер ту же страницу index.html
    или написать, что следует сделать
    или где об этом почитать

    чего-либо внятного по вопросу поиском разыскать не получилось
  • 6136 © (27.08.11 13:05) [7]
    Спасибо, разобрался
    в сервере в процедуре IdHTTPServer1CommandGet
    добавил ResponseInfo.Redirect('http://localhost/index.html');
  • Anatoly Podgoretsky © (27.08.11 14:47) [8]
    > 6136  (27.08.2011 12:53:06)  [6]

    Нигде, это решает сервер, а не клиент
 
Конференция "Прочее" » html для отправки строки на сервер
Есть новые Нет новых   [134436   +23][b:0][p:0]