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

and_rivne
12.10.2018 14:41:37
Форум: Lazarus
Тема: TTCPBlockSocket не реагирует на CloseSocket
Ответы: 13
Просмотры: 11755

Re: TTCPBlockSocket не реагирует на CloseSocket

По статусу сокетов:
Почему то система умеет видеть состояние моих сокетов
http://joxi.ru/LmGGj98ueLZygm
Вот бы мне такое через TTCPBlockSocket посмотреть?
Думал что в исходниках найду ответ:
function TBlockSocket.InternalCanRead(Timeout: Integer): Boolean;
var
TimeVal&#58 ...
and_rivne
12.10.2018 14:27:21
Форум: Lazarus
Тема: Как контролировать количество запущенных Thread ?
Ответы: 14
Просмотры: 13005

Re: Как контролировать количество запущенных Thread ?

Спасибо за наводку!
Маленькое уточнение:
Если в одном потоке TList наполняется, а в другом циклом анализируется - что использовать?
Потоков на добавление один, а тех кто "крутить" несколько.
and_rivne
12.10.2018 14:23:27
Форум: Lazarus
Тема: TTCPBlockSocket CanRead постоянно true
Ответы: 4
Просмотры: 4537

Re: TTCPBlockSocket CanRead постоянно true

olegy123
Параметры проекта -> параметры компилятора -> отладка : включить Heaptrc

Не нахожу такого.
http://joxi.ru/YmEGNz8u0WLQbA
and_rivne
12.10.2018 13:18:09
Форум: Lazarus
Тема: TTCPBlockSocket CanRead постоянно true
Ответы: 4
Просмотры: 4537

TTCPBlockSocket CanRead постоянно true

Держу открытый сокет для подключений:
Socket.Bind('0.0.0.0','57777');
Socket.setLinger(true,10000);
проверяю есть ли новый клиент:

repeat
if Socket.CanRead(100) then
begin
......
end;
until Terminated;

Но в при наступлении какого-то момента ...
and_rivne
12.10.2018 11:22:11
Форум: Lazarus
Тема: Как контролировать количество запущенных Thread ?
Ответы: 14
Просмотры: 13005

Re: Как контролировать количество запущенных Thread ?

olegy123
Все верно.. еще бы добавить синхронизацию

С этого места поподробней пожалуйста.
and_rivne
09.10.2018 12:36:55
Форум: Lazarus
Тема: v1.8.4 fedora exit code 256
Ответы: 5
Просмотры: 5620

Re: v1.8.4 fedora exit code 256

Lazarus 1.6 работает нормально.
Для 1.8 устанавливаю следующие пакеты

root@localhost Downloads]# rpm -Uvh fpc-3.0.4-1.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:fpc-3.0.4-1 ...
and_rivne
09.10.2018 12:26:51
Форум: Lazarus
Тема: Как контролировать количество запущенных Thread ?
Ответы: 14
Просмотры: 13005

Re: Как контролировать количество запущенных Thread ?

Да, скорее всего у меня не правильная схема работы с сокетами.
У меня получается на каждый коннект клиента создается отдельный поток. Так во все примерах в synapse.

Socket.CreateSocket;//создаем новый сокет
//связываем сокет с локальным адресом
Socket.Bind(Socket.LocalName,'57778 ...
and_rivne
09.10.2018 10:58:03
Форум: Lazarus
Тема: v1.8.4 fedora exit code 256
Ответы: 5
Просмотры: 5620

Re: v1.8.4 fedora exit code 256

В том то и проблема, что дополнительной информации о ошибке - нет.
На федоре 28 - все норм, компилится без проблем.
Значит пора обновлятся )
and_rivne
08.10.2018 16:44:26
Форум: Lazarus
Тема: v1.8.4 fedora exit code 256
Ответы: 5
Просмотры: 5620

v1.8.4 fedora exit code 256

Решил посмотреть на версию 1.8.4 на федоре 23 (64бит).
При компиляции базового, пустого, проекта получаю ошибку:
Error while linking.
Exit code 256


Не могу понять чего не хватает.
and_rivne
19.09.2018 12:33:44
Форум: Lazarus
Тема: TTCPBlockSocket не реагирует на CloseSocket
Ответы: 13
Просмотры: 11755

Re: TTCPBlockSocket не реагирует на CloseSocket

Тогда еще один вопрос.
Когда я подключаюсь к серваку по

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

sock.Connect(edServerIP.Text, edServerPort.Text);

то могу ли я получить какой-то "идентификатор коннекта" от сервера?
and_rivne
19.09.2018 10:14:58
Форум: Lazarus
Тема: TTCPBlockSocket не реагирует на CloseSocket
Ответы: 13
Просмотры: 11755

Re: TTCPBlockSocket не реагирует на CloseSocket

Проверяй после каждой операции CanRead()

Даже когда клиенты отключились, после CanRead(10)/CanWrite(10), значение Socket.LastError равняется 0 !!
А Socket.SendString('test') дает ошибку.
Но мне нужно проверить не посылая данных.
and_rivne
19.09.2018 08:53:40
Форум: Lazarus
Тема: TTCPBlockSocket не реагирует на CloseSocket
Ответы: 13
Просмотры: 11755

Re: TTCPBlockSocket не реагирует на CloseSocket

попробуй ловить HR_ReadCount с value = 0.
К сожалению HR_ReadCount не происходит.
Скорее всего, проблема в том, что я смотрю на статус сокета-сервера.
Какие есть варианты, чтобы понять, что клиент отвалился?
Я могу циклом перебрать клиентов. Но что проверять? CanRead и CanWrite не означают что ...
and_rivne
18.09.2018 19:28:52
Форум: Lazarus
Тема: TTCPBlockSocket не реагирует на CloseSocket
Ответы: 13
Просмотры: 11755

Re: TTCPBlockSocket не реагирует на CloseSocket

На серваку ловлю конекты и создаю каждому отдельный поток.
Socket.CreateSocket;//создаем новый сокет
//связываем сокет с локальным адресом
Socket.Bind(Socket.LocalName,'57778');
repeat
if Socket.CanRead(100) then
begin
T:=TProxyThread.Create(True,Socket.Accept ...
and_rivne
18.09.2018 15:56:46
Форум: Lazarus
Тема: TTCPBlockSocket не реагирует на CloseSocket
Ответы: 13
Просмотры: 11755

TTCPBlockSocket не реагирует на CloseSocket

Использую synapse
Клиент подключается серверу
sock.Connect('localhost', port);
Сервер видит это и через Socket.OnStatus показывает
HR_Accept: Log.Lines.Add('Accept '+TTCPBlockSocket(Sender).GetRemoteSinIP);

Но когда клиент говорит sock.CloseSocket; сервер не ...
and_rivne
22.08.2018 11:20:26
Форум: Lazarus
Тема: Как контролировать количество запущенных Thread ?
Ответы: 14
Просмотры: 13005

Re: Как контролировать количество запущенных Thread ?

что там с памятью делаете что заканчивается?

Судя по документации, там что не делай, но количество одновременно запущенных потоков ограничено. У меня затыкается, приблизительно, на 120 штук.

вам нужен семафор.

Есть готовые решения от лазаруса?