Что нового

Объединение текста при многоразовой отправки с помощью StdinWrite()

The Dream

Новичок
Сообщения
393
Репутация
3
Подскажите пожалуйста, можно ли как-то избежать "склеивание" всех данных (в данном случае текст) при многоразовом отправлении. То есть если я отправляю 1, 2, 3, 4, 5 - то приходит сразу 12345. Можно ли как-то "включить" метод как в пакетах (TCP)? То есть обрабатывать по пакетно. Сначала 1, потом 2 и т.д.

Отправляю так:

Код:
StdinWrite($iPID,'text')
StdinWrite($iPID,'text')
StdinWrite($iPID,'text')
StdinWrite($iPID,'text')
StdinWrite($iPID,'text')


Получаю соответственно:

Код:
$sData = ConsoleRead()


Спасибо.
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
sngr, я вроде бы написал что "обрабатывать по пакетно. Сначала 1, потом 2 и т.д."

По пакетно , это отдельными блоками. То есть пока не прочитаю 1 - не смогу прочитать 2. Может кто-то поможет в этом, хотя что-то мне кажется что это нереально.

Проверил в TCP - к сожалению также.
 

ildar

Осваивающий
Сообщения
252
Репутация
29
Если после каждой посылки закрывать поток и делать чтение. Примерно так:
Код:
StdinWrite($iPID,'text')
StdinWrite($iPID)
$sData = ConsoleRead()
StdinWrite($iPID,'text')
StdinWrite($iPID)
$sData = ConsoleRead()
StdinWrite($iPID,'text')
StdinWrite($iPID)
$sData = ConsoleRead()
StdinWrite($iPID,'text')
StdinWrite($iPID)
$sData = ConsoleRead()
 
Автор
T

The Dream

Новичок
Сообщения
393
Репутация
3
ildar, спасибо большое. Если мы в качестве параметра (второго) ничего не указываем - то поток закрывается? (StdinWrite($iPID)

Но при этом данные уже отправлены? Просто ConsoleRead находится в другой программе..
 
Верх