powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Работа с сокетом в нескольких потоках
6 сообщений из 6, страница 1 из 1
Работа с сокетом в нескольких потоках
    #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
Работа с сокетом в нескольких потоках
    #39959156
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbМожет в крит. секции обернуть?

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

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


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

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


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