Hi everyone,
I'd appreciate if someone could help me to understand what is happening.
I'm attempting to connect R to the broker platform using tcp on localhost
5333.
Just to learn how use make.socket, write.socket, ..functions I wrote simple
code:
#prepare string command to subscribe ask and bid price on Italian stock
#this should be a push stream like:
#First stream:
#outcome=OK|item=MI.EQCON.2552
#Update stream:
#MI.EQCON.1|21|10|22|11|23|12|24|5|20|19|7.5
#MI.EQCON.2552|||||||||||7.3
#..................................................
#until the buffer is full.
msg2<-'function=subscribe|item=MI.EQCON.1|schema=ask1;bid1'
#open socket connection
socketPointer<-make.socket(host='localhost',port=5333,fail=TRUE,server=FALSE)
#send the command line
write.socket(socket=socketPointer,string=msg2)
#read data
read.socket(socket=socketPointer,maxlen=252,loop=FALSE)
#send command to unsuscribe
write.socket(socket=sockPointer,string=unsub)
#close socket
close.socket(sockPointer)
The code remain stick on read.socket function, so I decided to use debug
functionality:
This is the read.socket source:
debugging in: read.socket(socket = s.p, maxlen = 252, loop = FALSE)
debug: {
if (length(port <- as.integer(socket$socket)) != 1L)
stop("invalid 'socket' argument")
maxlen <- as.integer(maxlen)
buffer <- paste(rep.int("#", maxlen), collapse = "")
repeat {
tmp <- .C("Rsockread", port, buffer = buffer, len = maxlen,
PACKAGE = "base")
rval <- substr(tmp$buffer, 1L, tmp$len)
if (nzchar(rval) || !loop)
break
}
rval
}
everything works fine up to .C("Rsockread", port, buffer = buffer,
len maxlen, PACKAGE = "base")
when execution arrive to the c function call R goes in a some kind a eternal
loop !
Thanks very much
Massimo Salese
--
View this message in context:
http://r.789695.n4.nabble.com/read-socket-utils-package-somthing-is-going-wrong-tp4531374p4531374.html
Sent from the R help mailing list archive at Nabble.com.