спасибо, что посмотрели. В настоящее время я использую сервер и клиент для сервера сокетов в C, используя linux. В настоящее время у меня есть рабочая система чата, где и сервер, и сокет могут отправлять уникальные сообщения, а другой конец получит это сообщение с правильной длиной.Socket Server с неизвестным номером принимается в цикле
пример вывода:
Server side
You:Hello!
client:hi, how are you?
You: fine thanks.
client: blabla
..И стороне клиента будет выглядеть следующим:
server: Hello!
you:hi,how are you?
и т.д. и т.п.
Мой вопрос, есть ли способ для клиент/сервер, чтобы отправлять несколько сообщений до других ответов?
У меня в настоящее время есть бесконечный цикл while, который ждет приема, а затем переходит к отправке, и это будет повторяться до тех пор, пока соединение не будет потеряно. Используя этот метод, я могу отправить только одно сообщение, прежде чем я буду вынужден ждать получения. Я не уверен в правильной реализации, поскольку я все еще совершенно новичок в обоих сокетах и C! Спасибо :)
Это совсем не ясно, о чем вы просите. Что мешает обеим сторонам просто отправлять несколько сообщений до того, как они попытаются получить? –
Общим способом структурирования этого является использование нескольких потоков. Один поток считывает с терминала и отправляет то, что пользователь вводит в соединение, другой поток считывает из соединения и отображает вывод. – Barmar
Другой способ сделать это - использовать 'select()' или 'poll()' для ожидания ввода как от терминала, так и от сети одновременно в одном потоке. – Barmar