Detailed description |
When attemptiong to user evalServer, the socket server is inserting invalid information which results in a parse error when receiving socket response by evalServer.
----------------------------------------------------------------------
client code
----------------------------------------------------------------------
conn<-socketConnection("localhost",8888)
evalServer(conn,"x=1")
----------------------------------------------------------------------
Server Code
----------------------------------------------------------------------
startSocketServer()
options(debug.Socket =TRUE)
----------------------------------------------------------------------
Server Output:
----------------------------------------------------------------------
sock640 > 8888: ..Last.value <- try(eval(parse(text = "x=1"))); .f <- file(); dump("..Last.value", file = .f); flush(.f); seek(.f, 0); cat("\n<<<startflag>>>", readLines(.f), "<<<endflag>>>\n", sep = "\n"); close(.f); rm(.f, ..Last.value); flush.console()
8888 > sock640: :> ..Last.value <- try(eval(parse(text = "x=1")))
:> .f <- file()
:> dump("..Last.value", file = .f)
:> flush(.f)
:> seek(.f, 0)
[1] 20
:> cat("\n<<<startflag>>>", readLines(.f), "<<<endflag>>>\n", sep = "\n")
<<<startflag>>>
..Last.value <-
1
<<<endflag>>>
:> close(.f)
:> rm(.f, ..Last.value)
:> flush.console()
NULL
----------------------------------------------------------------------
Client Output:
----------------------------------------------------------------------
Error in evalServer(conn, "x=1") : Unable to find <<<startflag>>>
In addition: Warning message:
In 0:(endloc - 1) :
numerical expression has 2 elements: only the first used |
|