Я не знаю, как получать заказы из терминала в многопоточной ситуации - PullRequest
0 голосов
/ 16 апреля 2019

Я работаю над проектом UDP Socket.Я использую 2 потока в моей клиентской программе.Первый поток регистрирует и поддерживает связь с сервером.Второй поток должен ответить на некоторые заказы из терминала, например, отправив конфигурацию клиента на сервер.Мне нужно было бы иметь возможность набирать на терминале, когда программа работает, чтобы сообщить второму потоку о том, что ей нужно делать, но я не знаю, как реализовать это в своем коде, и я даже не знаю, что делатьпоищите в Google.

Я ничего не пробовал, так как совершенно не знаю, как это сделать

Я хотел бы иметь возможность набирать "sendconf", например, в терминале, покапрограмма работает и второй поток отвечает на это.Я знаю, как отправить конфигурацию клиента на сервер, я просто не знаю, как сообщить потоку, что для этого нужно.

1 Ответ

2 голосов
/ 16 апреля 2019

очереди сообщений?

Добавьте «сообщение» (команду) в очередь, которую опрашивает второй поток, затем обрабатывает сообщение и отправляет ответ в другую очередь, опрашиваемую первым потоком.

Если вы хотите быть синхронным, второй поток может вместо этого установить данные непосредственно в структуре сообщения для ответа, а затем установить флаг, что он завершен. Первый поток продолжает ждать флага, а затем выдает результат пользователю.

...