В основном я пытаюсь сделать 2-3 передачи файлов из одного сокета НО все они в то же время и все же не прерывать сообщения, отправленные обратно и клиент / сервер.
Подобно программе чата между 2 людьми и 3 передачи файлов происходит.
Я стараюсь не открывать 2 или более потоков.
Я хочу, чтобы все происходило асинхронно — все еще говорите и передавайте все 3 файла на в то же время ; не один за другим.
Как будет выглядеть мой протокол? Я не могу думать об этом.
Если вы действительно хотите сделать коммутацию пакетов самостоятельно, я рекомендую очередь: поместите пакеты, которые должны быть отправлены, на одном конце, а на другом конце вы берете пакеты и выполняете фактический банковский перевод.
Для пакетов, которые передаются по проводам, вам нужен тип (передача файла или чат), пункт назначения (куда поместить файл или с кем вы общаетесь) и фактические данные пакета.
На принимающей стороне вам необходимо отслеживать всех получателей, чат и передачу файлов. При получении передачи файла для пункта назначения X вы сохраняете его в файл X, если вы получаете сообщение чата для пользователя Y, вы отправляете сообщение пользователю Y.
Других решений пока нет …