Я пишу игрушку MUD клиент, который использует сокет TCP/IP для подключения к серверу telnet.Как узнать, что пакет данных полностью принят в telnet?
Как обычная функция в клиентах MUD, я должен иметь возможность запускать ряд регулярных выражений в ответах с сервера и делать вещи, когда они запускаются.
Теперь проблема возникает, когда ответ длинный и принят в 2 или более пакетах TCP/IP, поэтому регулярные выражения не совпадают, когда я запускаю их в ответах, поскольку они еще не завершены (первый или второй часть не совместима в одиночку).
Итак, вопрос в том, как узнать, что сервер завершает отправку пакета данных, прежде чем запускать на них регулярные выражения.
вопрос: «Что такое разделитель?» и что вы подразумеваете под «игрой (почти) исключительно клиентом (а не самой telnet)»? –
разделитель - это то, что вы хотите, прямо сейчас, ограничивая мои предложения запятыми и мои слова с помощью любой буквы, вам просто нужно найти или определить разделитель, который последовательно отделяет ваши сообщения друг от друга. Если игрок подключится через telnet, а не к вашему клиенту, и, например, ваш разделитель равен %%%, они будут видеть эти %%%, и вы можете этого не захотеть. – gia
небольшое недоразумение здесь: серверная сторона не находится под моим контролем, я просто пишу общий клиент грязи. поэтому я не могу заставить сервер добавлять разделители в конец данных. –