Найдено 47 результатов

Linus
02.04.2017 16:13:58
Форум: Lazarus
Тема: Как лучше организовать TCP Сервер и Клиент
Ответы: 29
Просмотры: 29693

Re: Как лучше организовать TCP Сервер и Клиент

Дополняю тему вопросом: как установить таймаут на чтение из сокета? (fprecv)
а так же проверить сколько скопилось в буфере отправки.
Linus
12.03.2017 00:40:10
Форум: Lazarus
Тема: не могу поймать вывод консольной программы (Линукс)
Ответы: 20
Просмотры: 18797

Re: не могу поймать вывод консольной программы (Линукс)

Не получает имя файла, соответственно вывод ошибки в поток StErr

Если набрано именно так как здесь, то и не получит имя файла. См. кавычки. +fname+ у вас часть строковой константы.

Опечатался, когда набирал сюда

Работает вот так (без доп скриптов)

proc.Executable:='mediainfo';
proc ...
Linus
10.03.2017 11:38:10
Форум: Lazarus
Тема: не могу поймать вывод консольной программы (Линукс)
Ответы: 20
Просмотры: 18797

Re: не могу поймать вывод консольной программы (Линукс)

Значит Output

ну так все равно пусто

Если по-старинке

proc.CommandLine:='mediainfo --Inform="General;%Duration%" "'+fName+'"'; \0

то вывод есть, но он игнорирует "General;%Duration%", те неожиданное дает ВСЕ.


proc.Executable:='mediainfo';
proc.Parameters.Add ...
Linus
09.03.2017 23:03:03
Форум: Lazarus
Тема: не могу поймать вывод консольной программы (Линукс)
Ответы: 20
Просмотры: 18797

Re: не могу поймать вывод консольной программы (Линукс)

tema писал(а):Скинь сюда что кажет консоль с такими командами:

Код: Выделить всё

$ mediainfo --Inform="General;%Duration%" твой-файл 1>t1.txt 2>t2.txt
$ cat t1.txt
$ cat t2.txt



Решили пойти от противного) момент..
t1 содержит корректный вывод
Linus
09.03.2017 19:18:34
Форум: Lazarus
Тема: не могу поймать вывод консольной программы (Линукс)
Ответы: 20
Просмотры: 18797

Re: Работа с консолью(Линукс)

Я в догадках, что не так
Ну mediainfo пишет не в Stderr, а в Output. Это ffmpeg и avconv пишет в Stderr. Поэтому и пусто.


и там и там шиш... вот что странно

сейчас попробую с memo
Linus
09.03.2017 13:33:19
Форум: Lazarus
Тема: не могу поймать вывод консольной программы (Линукс)
Ответы: 20
Просмотры: 18797

Re: Работа с консолью(Линукс)

В том то и дело, выхлоп есть. Экспериментировал с тем же кодом: так же пусто и на mediaifo... а вот на evtest, ls, uname - в потоке уже есть данные.... что не так с нужными мне утилитами?
Так точно пробовал?
AProcess.Executable := 'ffmpeg';
AProcess.Parameters.Add('-i ...
Linus
08.03.2017 23:26:20
Форум: Lazarus
Тема: не могу поймать вывод консольной программы (Линукс)
Ответы: 20
Просмотры: 18797

Re: Работа с консолью(Линукс)

В том то и дело, выхлоп есть. Экспериментировал с тем же кодом: так же пусто и на mediaifo... а вот на evtest, ls, uname - в потоке уже есть данные.... что не так с нужными мне утилитами?
Linus
08.03.2017 20:47:06
Форум: Lazarus
Тема: не могу поймать вывод консольной программы (Линукс)
Ответы: 20
Просмотры: 18797

не могу поймать вывод консольной программы (Линукс)

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


result:=false;
proc:=Tprocess.Create(nil);
proc.Executable:='ffmpeg';
proc.Parameters.Add('-i "'+fname+'"');
proc.Options:=[poWaitOnExit, poUsePipes, poNoConsole&#93 ...
Linus
21.02.2017 22:39:05
Форум: Lazarus
Тема: Как лучше организовать TCP Сервер и Клиент
Ответы: 29
Просмотры: 29693

Re: Как лучше организовать TCP Сервер и Клиент

Для TCP-сервера алгоритм такой (для линукса, в винде в принципе то же самое):
4. принимаем входящее подключение, функция accept(), при этом создается новый сокет, похожий на исходящий, только уже подключенный
.. пункт 4 повторяем для каждого входящего подключения


Вот какую забыл важную мелочь ...
Linus
21.02.2017 21:07:09
Форум: Lazarus
Тема: Как лучше организовать TCP Сервер и Клиент
Ответы: 29
Просмотры: 29693

Re: Как лучше организовать TCP Сервер и Клиент

Это мне ответ?)

Нет, клиент один и только один - другое приложение. Средства только нативные. (желательно одинаковые как для c++ так и для fpc).
Задача на текущий момент сводится к тому что сервер ждет подключение, если клиент после передачи умирает - забыть про него и ждать и принять его еще раз ...
Linus
21.02.2017 19:26:37
Форум: Lazarus
Тема: Как лучше организовать TCP Сервер и Клиент
Ответы: 29
Просмотры: 29693

Re: Как лучше организовать TCP Сервер и Клиент

как бы

Код: Выделить всё

CloseSocket(SockH)


Ладно это пол беды, как сделать так чтобы сокет при потери клиента мог принять другого? (данный мною выше код данного не выполняет, хотя это и странно)
Linus
18.02.2017 22:44:34
Форум: Lazarus
Тема: Как лучше организовать TCP Сервер и Клиент
Ответы: 29
Просмотры: 29693

Re: Как лучше организовать TCP Сервер и Клиент

Здравствуйте! Юзаю socket юнит и не могу понять почему периодически не биндится сокет.


//существуем пока не мрет приложение
while (not terminated) do
begin
Fready:=false;
//'создаем сокет, слушаем, реагируем'
SockH:=fpSocket(AF_INET, SOCK_STREAM,0);

SockAddr.sin_family:=AF ...
Linus
21.01.2017 22:04:32
Форум: Сторонние средства
Тема: Многопоточные приложения и связанное с ними в Linux, MacOS
Ответы: 15
Просмотры: 31046

Re: Многопоточные приложения и связанное с ними в Linux, Mac

Upd.Upd.
Вообще, тут надо просто отладить, непонятно на каком шаге AV возникает, что при этом в логах, что делает в это время поток который должен разбудиться.

Вангую, что в FScheduler^.Suspended идет попытка разыменовать невалидный указатель. Вообще, непонятно зачем здесь использовать ...
Linus
21.01.2017 20:13:29
Форум: Сторонние средства
Тема: Многопоточные приложения и связанное с ними в Linux, MacOS
Ответы: 15
Просмотры: 31046

Re: Многопоточные приложения и связанное с ними в Linux, Mac

Для меня тоже это загадка)
Ладно, понятно что напрямую из главного потока работает.
Для теста создал поток от главного, перенес туда код. (Главный понятно спать sleep уложил, и эти строки закомментил )

while input<>'exit' do
begin
readln(input);
&#46;&#46;&#46;&#46;
if input='start' then ...
Linus
21.01.2017 19:08:13
Форум: Сторонние средства
Тема: Многопоточные приложения и связанное с ними в Linux, MacOS
Ответы: 15
Просмотры: 31046

Re: Многопоточные приложения и связанное с ними в Linux, Mac

Эта вкусность ничего не меняет, т.к. вы 1 000 000 раз в секунду запускаете миллион MainElevator.Start; после первых пол секунды у вас должен закипать процессор.

А вот и не запускает... С чего он должен запускать если выполнение далее не пройдет пока не отработает Readln();
По логам видно было бы ...