|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Нет, надо таки прочитать документацию как всей этой машинерией пользоваться правильно. Выше уже цитировали кусок. PS: Хотя на мой вкус проще выкинуть всю эту индюшатину в полном составе. Ушел от инди где мог, по сокетам ничего не нашел... :( Как можно и в этом вопросе избавиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 04:53 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov ъъъъъPostMessage(Self.Handle, WM_STRPROCESS, WPARAM(Pointer(fStr)), 0); С PostMessage так нельзя: до главного потока долетит ссылка на мусор от которого тому поплохеет. С SendMessage - можно. Сделал ч-з SendMessage, работает отлично, но инди ещё преподнесли геморроя... При отключении сервера с подключенными клиентами , выходит ошибка raised exception class EIdClosedSocket with message 'Disconnected.'. и способа корректно "отрубить" всех клиентов я не нашёл... Какая-то муйня ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 06:51 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
antox Ушел от инди где мог, по сокетам ничего не нашел... :( Прям стало интересно, где же ты все-таки ушел от Инди, если это либа сетевых компонентов ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 10:27 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
По коду от ъъъъъ: вариант костыльно-хакерский, конечно, его надо обкладывать комментами и проверками. Либо сделать более корректно через NewStr/DisposeStr. И указатели традиционно отсылаются в LPARAM (хоть с w32 они и сравнялись в размерах с WPARAM). И еще я бы добавил $IF проверку по Sizeof - она есть не просит, зато сразу ругнется, если вдруг код окажется на платформе, где размеры не совпадают ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 10:38 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal И еще я бы добавил $IF проверку по Sizeof - она есть не просит, зато сразу ругнется, если вдруг код окажется на платформе, где размеры не совпадают А вот хакерство мне да, сильно не нравится. Кстати, там будет утечка памяти, всего лишь если PostMessage вернёт False. Надо хотя бы на результат проверять перед этим хаком (который, кстати, в следующих версиях дельфей вполне может перестать работать, в отличие от изменения параметров PostMessage). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 11:42 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
antox Dimitry Sibiryakov Нет, надо таки прочитать документацию как всей этой машинерией пользоваться правильно. Выше уже цитировали кусок. PS: Хотя на мой вкус проще выкинуть всю эту индюшатину в полном составе. Ушел от инди где мог, по сокетам ничего не нашел... :( Как можно и в этом вопросе избавиться? А книжку кто-то раньше тебя скачал, теперь там её нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 11:43 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
antox ... При отключении сервера с подключенными клиентами , выходит ошибка raised exception class EIdClosedSocket with message 'Disconnected.'. и способа корректно "отрубить" всех клиентов я не нашёл... Какая-то муйня Код: pascal 1.
- при этом для каждого соединения вызовется CloseSocket, т.к. Код: pascal 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 12:08 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
ъъъъъ ну, теоретически... если сообщение как-то потеряется, то вот вам и утечка. :) Dimitry Sibiryakov Например, когда sizeof(WPARAM) <> sizeof(LPARAM) <> sizeof(Pointer). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 13:35 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
YuRock Сомневаюсь, что когда-нибудь появится новая винда, в которой будет sizeof(LPARAM) <> sizeof(LPARAM) или <> sizeof(Pointer). А вот хакерство мне да, сильно не нравится. Кстати, там будет утечка памяти, всего лишь если PostMessage вернёт False. Надо хотя бы на результат проверять перед этим хаком (который, кстати, в следующих версиях дельфей вполне может перестать работать, в отличие от изменения параметров PostMessage). Мало ли... как я говорил, проверка есть не просит и даже код не замедляет. PostMessage вернёт False, если очередь заполнится, а это по умолчанию 10к мессаг в очереди. Проверка бесспорно нужна, но это скорее нештатный случай для главного потока. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 15:48 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal antox Ушел от инди где мог, по сокетам ничего не нашел... :( Прям стало интересно, где же ты все-таки ушел от Инди, если это либа сетевых компонентов TNetHTTPClient - очень понравилось :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 16:07 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
s62 antox ... При отключении сервера с подключенными клиентами , выходит ошибка raised exception class EIdClosedSocket with message 'Disconnected.'. и способа корректно "отрубить" всех клиентов я не нашёл... Какая-то муйня Код: pascal 1.
- при этом для каждого соединения вызовется CloseSocket, т.к. Код: pascal 1. 2. 3. 4. 5. 6. 7.
Может перед Код: pascal 1.
надо еще что-то вызвать? А то AV ловится Код: pascal 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 16:24 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
Пока удалось решить ч-з try, но не нравится, в отладке всё равно дает ошибку Код: pascal 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 16:48 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
ъъъъъ antox пропущено... Ушел от инди где мог, по сокетам ничего не нашел... :( Как можно и в этом вопросе избавиться? А книжку кто-то раньше тебя скачал, теперь там её нет? Есть :) Там ооочень много инфы, пока не нашел по сокетам ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 16:57 |
|
TIdTCPServer.OnExecute & TQueue
|
|||
---|---|---|---|
#18+
Fr0sT-Brutal проверка есть не просит и даже код не замедляет. Fr0sT-Brutal 10к мессаг в очереди. Проверка бесспорно нужна, но это скорее нештатный случай для главного потока. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2021, 17:23 |
|
|
start [/forum/topic.php?fid=58&msg=40110803&tid=2036889]: |
0ms |
get settings: |
11ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 147ms |
0 / 0 |