Вверх ↑
Этот топик читают: Гость
Ответов: 4628
Рейтинг: 749
#16: 2017-05-22 10:33:50 ЛС | профиль | цитата
Нет, тут проще - один поток на одно подключение. Просто здесь не рассчитано на тысячи подключений.

Редактировалось 1 раз(а), последний 2021-10-08 11:57:24
карма: 26

0
Ответов: 655
Рейтинг: 18
#17: 2018-01-31 08:47:07 ЛС | профиль | цитата
Netspirit, подскажите такой момент.
использую VBS
Dim fs, fa
Set fs = CreateObject("Scripting.FileSystemObject")
Set fa = fs.OpenTextFile("\\.\pipe\test", 8, False)
fa.WriteLine("sa=1025")
fa.Close
Set fa = fs.OpenTextFile("\\.\pipe\test", 8, False)
str1 = fa.ReadAll
MsgBox str1

Выдает ошибку "все копии канала заняты"

Редактировалось 4 раз(а), последний 2018-01-31 09:41:25
карма: 0

0
Ответов: 655
Рейтинг: 18
#18: 2018-01-31 10:27:37 ЛС | профиль | цитата
Запись данных удается, считать так не удалось
карма: 0

0
Ответов: 4628
Рейтинг: 749
#19: 2018-01-31 12:23:31 ЛС | профиль | цитата
Как я понимаю, канал "test" создаётся в сервере? Записанные из VBS данные "sa=1025" в сервер приходят, а если сервер отправляет данные, то скрипт их не может прочитать? Если да, то проблема может быть в том, что ты делаешь fa.Close перед чтением - если сервер отправлял данные тому же соединению, от которого он выше получил строку, то отправляет он данные в никуда.
Предполагаю, в скрипте канал надо открывать в режиме чтение-запись и после отправки читать данные из того же хендла не закрывая. С другой стороны, если в скрипте просто надо открыть канал и сразу прочитать данные, то во-первых, режим открытия канала должен предусматривать чтение (не знаю что значит параметр 8 в OpenTextFile(), во-вторых, надо разобраться как работает метод ReadAll() - может он не дожидается поступления данных?
карма: 26

0
Ответов: 655
Рейтинг: 18
#20: 2018-01-31 12:35:22 ЛС | профиль | цитата
Netspirit, все верно канал создается на сервере, параметр 8 - запись в конец файла, 1- чтение, 2 - перезапись. Клиент (скрипт) ни в каком раскладе не получает данные от сервера

Set fs = CreateObject("Scripting.FileSystemObject")
Set fa = fs.OpenTextFile("\\.\pipe\test", 1, False)
str1 = fa.ReadAll
MsgBox str1
карма: 0

0
Ответов: 4628
Рейтинг: 749
#21: 2018-01-31 12:38:44 ЛС | профиль | цитата
Где можно посмотреть документацию по объекту, получаемому через OpenTextFile()?
карма: 26

0
Ответов: 655
Рейтинг: 18
#22: 2018-01-31 13:05:51 ЛС | профиль | цитата
https://msdn.microsoft.com/ru-ru/vba/language-reference-vba/articles/opentextfile-method
карма: 0

0
Ответов: 4628
Рейтинг: 749
#23: 2018-01-31 13:23:47 ЛС | профиль | цитата
Попробуй запусти сервер, потом запусти скрипт. MsgBox выскакивает сразу, или пока сервер не отправит данные? По логике, чтение из пайпа - это блокирующая операция. Она возвращает управление только после поступления данных с той стороны. Если сообщение выскакивает сразу, значит скрипт не дожидается поступления данных.
карма: 26

0
файлы: 1DateConvertor mod 2017-06-30.zip [197.4KB] [480]
23
Сообщение
...
Прикрепленные файлы
(файлы не залиты)