Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с сокетом в нескольких потоках / 6 сообщений из 6, страница 1 из 1
18.05.2020, 20:14
    #39959107
cptngrb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с сокетом в нескольких потоках
Есть сокет, который открывается, закрывается, и получает данные в одном потоке, а периодически заполненность буфера проверяется в другом. Могут ли быть проблемы с памятью?

Код: pascal
1.
SOCKET_RECV : TSocket;



проверка буфера (2й поток)
Код: pascal
1.
IOCtlSocket(SOCKET_RECV, FIONREAD, Arg)



основная работа (1й поток)
Код: pascal
1.
2.
3.
4.
while not Terminated do
...
 recv(SOCKET_RECV, buff, SizeOf(buff) ,0);
...



Может в крит. секции обернуть?
...
Рейтинг: 0 / 0
18.05.2020, 22:06
    #39959156
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с сокетом в нескольких потоках
cptngrbМожет в крит. секции обернуть?

Не надо. Зачем тебе вообще эта проверка?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18.05.2020, 22:58
    #39959174
cptngrb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с сокетом в нескольких потоках
Dimitry Sibiryakov,
проверяю, успеваю ли я вычитывать из буфера
...
Рейтинг: 0 / 0
22.05.2020, 00:11
    #39960517
AWSVladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с сокетом в нескольких потоках
Если только чтение, ничего не будет.
...
Рейтинг: 0 / 0
22.05.2020, 00:31
    #39960527
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с сокетом в нескольких потоках
cptngrb,

Сделай третий поток супервизора и пусть первые два посылают ему сообщения для принятия соответствующих решений.))
...
Рейтинг: 0 / 0
22.05.2020, 03:18
    #39960534
northener
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с сокетом в нескольких потоках
Vlad F
cptngrb,
Сделай третий поток супервизора и пусть первые два посылают ему сообщения для принятия соответствующих решений.))


Потом сделай четвертый поток суперпупер визора, чтобы он контролировал три первых. Потом ...

P.S. И с каждым годом все больше и больше забывается, что изначальная аппаратная реализация всех подобных протоколов последовательной передачи данных имела (да и до сих пор имеет) встроенные механизмы для асинхронной работы. Аппаратные прерывания/события (Events) ОС. Но разбираться в этом большинству лень. Гораздо проще плодить потоки, благо примеров потоков на помойке легион.
P.P.S. Хотя если бы папаша Борланд в своё время нашел бы взаимоприемлемое решение вместе с Fransois Piette, может мы бы и не страдали ерундой.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с сокетом в нескольких потоках / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]