R socketConnection - соединение не открыто для чтения
Я пытаюсь позвонить load()
функция на socketConnection
, Когда я устанавливаю соединение (между двумя процессами R), я проверяю информацию о сокете и вижу это:
> s <- socketConnection(host = "localhost", 12345, server = FALSE, blocking=TRUE, open = "rb")
> s
description class mode text
"->localhost:12345" "sockconn" "rb" "binary"
opened can read can write
"opened" "yes" "yes"
Соединение было успешно открыто и доступно для чтения (и в двоичном режиме). Если я сейчас пытаюсь читать из сокета, я получаю это:
> load(s)
Error in load(s) : connection not open for reading
Мне потребовалось некоторое время, чтобы понять, почему я вижу сокет с надписью "могу прочитать = да", а в сообщении об ошибке говорится, что он не читается. Оказывается, соединение оборачивается объектом gzcon при выполнении load()
, Если я заверну это сам, я увижу это:
> s
description class mode text
"->localhost:12345" "sockconn" "rb" "binary"
opened can read can write
"opened" "yes" "yes"
> z <- gzcon(s)
> z
description class
"gzcon(->localhost:12345)" "gzcon"
mode text
"rb" "binary"
opened can read
"opened" "no"
can write
"yes"
> s
description class
"gzcon(->localhost:12345)" "gzcon"
mode text
"rb" "binary"
opened can read
"opened" "no"
can write
"yes"
Gzcon преобразует соединение в нечитаемое. Итак, мой вопрос: как я могу выполнить загрузку из сокета или как заставить gzcon поддерживать соединение читабельным?