Full_Name: Neil McKay
Version: 1.6.1
OS: Linux (Redhat 7.1)
Submission from: (NULL) (129.124.42.210)


Specifying loop=true in a call to read.socket results in lost characters. To
see
the bug, set up an R server as follows:

sock <- make.socket(port=5432, server=TRUE);
while(TRUE) {
    c<-read.socket(sock, maxlen=1, loop=TRUE);
    cat(c, "\n", sep="", collapse="");
}

In another invocation of R, write this client:

sock<-make.socket("localhost", 5432);
write.socket(sock, "abc---xyz3210AA<>");
close.socket(sock);

The "-", "0", and "<>" characters will be dropped by the server. The cause is in
the
R code for read.socket. The line

    if (rval > 0 || !loop)

should be

    if (nchar(rval) > 0 || !loop)

(This bug occurs on Windows also, so I suspect it's in all versions of R.)

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-devel

Reply via email to