Я использую liblo для связи OSC (низкоуровневый API) через UDP в течение некоторого времени, и сейчас я пытаюсь переключиться на TCP. Однако у меня возникли проблемы с пониманием того, как использовать библиотеку для TCP. echoserver демонстрирует, как настроить сервер. В основном я делаю так:
_tcpThread = lo_server_thread_new_with_proto( "7000", LO_TCP, errorHandler );
_tcpServer = lo_server_thread_get_server( _tcpThread );
lo_server_thread_start( _tcpThread );
_address = lo_address_new_with_proto( LO_TCP, "127.0.0.1", "7000" );
lo_send_message_from( _address, _tcpServer, "/test", message );
Теперь, как мне создать клиент, который подключается к сокету TCP и получает отправленные пакеты OSC? Документация и примеры кода оставляют меня ломать голову. Создать второй сервер на стороне клиента? Как мне сказать, куда подключаться?
РЕДАКТИРОВАТЬ: хорошо, теперь я понял, что lo_send_message_from
на самом деле хочет целевой адрес в качестве первого аргумента. Из этого я делаю вывод, что мне придется перебирать всех подключенных клиентов и отправлять их в соответствующие сокеты. Остается вопрос, кому подключать клиента к серверу? Возникает второй вопрос, как мне узнать, какие клиенты подключены, чтобы я мог отправлять свои посылки?