По статусу сокетов:
Почему то система умеет видеть состояние моих сокетов
http://joxi.ru/LmGGj98ueLZygm
Вот бы мне такое через TTCPBlockSocket посмотреть?
Думал что в исходниках найду ответ:
function TBlockSocket.InternalCanRead(Timeout: Integer): Boolean;
var
TimeVal: ...
Найдено 20 результатов
- 12.10.2018 14:41:37
- Форум: Lazarus
- Тема: TTCPBlockSocket не реагирует на CloseSocket
- Ответы: 13
- Просмотры: 11755
- 12.10.2018 14:27:21
- Форум: Lazarus
- Тема: Как контролировать количество запущенных Thread ?
- Ответы: 14
- Просмотры: 13005
Re: Как контролировать количество запущенных Thread ?
Спасибо за наводку!
Маленькое уточнение:
Если в одном потоке TList наполняется, а в другом циклом анализируется - что использовать?
Потоков на добавление один, а тех кто "крутить" несколько.
Маленькое уточнение:
Если в одном потоке TList наполняется, а в другом циклом анализируется - что использовать?
Потоков на добавление один, а тех кто "крутить" несколько.
- 12.10.2018 14:23:27
- Форум: Lazarus
- Тема: TTCPBlockSocket CanRead постоянно true
- Ответы: 4
- Просмотры: 4537
Re: TTCPBlockSocket CanRead постоянно true
olegy123
Параметры проекта -> параметры компилятора -> отладка : включить Heaptrc
Не нахожу такого.
http://joxi.ru/YmEGNz8u0WLQbA
- 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;
Но в при наступлении какого-то момента ...
Socket.Bind('0.0.0.0','57777');
Socket.setLinger(true,10000);
проверяю есть ли новый клиент:
repeat
if Socket.CanRead(100) then
begin
......
end;
until Terminated;
Но в при наступлении какого-то момента ...
- 12.10.2018 11:22:11
- Форум: Lazarus
- Тема: Как контролировать количество запущенных Thread ?
- Ответы: 14
- Просмотры: 13005
Re: Как контролировать количество запущенных Thread ?
olegy123
Все верно.. еще бы добавить синхронизацию
С этого места поподробней пожалуйста.
- 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 ...
Для 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 ...
- 09.10.2018 12:26:51
- Форум: Lazarus
- Тема: Как контролировать количество запущенных Thread ?
- Ответы: 14
- Просмотры: 13005
Re: Как контролировать количество запущенных Thread ?
Да, скорее всего у меня не правильная схема работы с сокетами.
У меня получается на каждый коннект клиента создается отдельный поток. Так во все примерах в synapse.
Socket.CreateSocket;//создаем новый сокет
//связываем сокет с локальным адресом
Socket.Bind(Socket.LocalName,'57778 ...
У меня получается на каждый коннект клиента создается отдельный поток. Так во все примерах в synapse.
Socket.CreateSocket;//создаем новый сокет
//связываем сокет с локальным адресом
Socket.Bind(Socket.LocalName,'57778 ...
- 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 - все норм, компилится без проблем.
Значит пора обновлятся )
На федоре 28 - все норм, компилится без проблем.
Значит пора обновлятся )
- 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
Не могу понять чего не хватает.
При компиляции базового, пустого, проекта получаю ошибку:
Error while linking.
Exit code 256
Не могу понять чего не хватает.
- 19.09.2018 12:33:44
- Форум: Lazarus
- Тема: TTCPBlockSocket не реагирует на CloseSocket
- Ответы: 13
- Просмотры: 11755
Re: TTCPBlockSocket не реагирует на CloseSocket
Тогда еще один вопрос.
Когда я подключаюсь к серваку по
то могу ли я получить какой-то "идентификатор коннекта" от сервера?
Когда я подключаюсь к серваку по
Код: Выделить всё
sock.Connect(edServerIP.Text, edServerPort.Text);то могу ли я получить какой-то "идентификатор коннекта" от сервера?
- 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') дает ошибку.
Но мне нужно проверить не посылая данных.
- 19.09.2018 08:53:40
- Форум: Lazarus
- Тема: TTCPBlockSocket не реагирует на CloseSocket
- Ответы: 13
- Просмотры: 11755
Re: TTCPBlockSocket не реагирует на CloseSocket
попробуй ловить HR_ReadCount с value = 0.
К сожалению HR_ReadCount не происходит.
Скорее всего, проблема в том, что я смотрю на статус сокета-сервера.
Какие есть варианты, чтобы понять, что клиент отвалился?
Я могу циклом перебрать клиентов. Но что проверять? CanRead и CanWrite не означают что ...
К сожалению HR_ReadCount не происходит.
Скорее всего, проблема в том, что я смотрю на статус сокета-сервера.
Какие есть варианты, чтобы понять, что клиент отвалился?
Я могу циклом перебрать клиентов. Но что проверять? CanRead и CanWrite не означают что ...
- 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 ...
Socket.CreateSocket;//создаем новый сокет
//связываем сокет с локальным адресом
Socket.Bind(Socket.LocalName,'57778');
repeat
if Socket.CanRead(100) then
begin
T:=TProxyThread.Create(True,Socket.Accept ...
- 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; сервер не ...
Клиент подключается серверу
sock.Connect('localhost', port);
Сервер видит это и через Socket.OnStatus показывает
HR_Accept: Log.Lines.Add('Accept '+TTCPBlockSocket(Sender).GetRemoteSinIP);
Но когда клиент говорит sock.CloseSocket; сервер не ...
- 22.08.2018 11:20:26
- Форум: Lazarus
- Тема: Как контролировать количество запущенных Thread ?
- Ответы: 14
- Просмотры: 13005
Re: Как контролировать количество запущенных Thread ?
что там с памятью делаете что заканчивается?
Судя по документации, там что не делай, но количество одновременно запущенных потоков ограничено. У меня затыкается, приблизительно, на 120 штук.
вам нужен семафор.
Есть готовые решения от лазаруса?
