R Gurus / Ninjas / Wizards: On both R 2.12 (Windows 7) and R 2.13 (OS X 10.5) I have tried the following: 1. In one instance of R open a socket via: s1 <- socketConnection(server=TRUE, open="a+b", port=31415, blocking=FALSE); 2. And in another instance I do the following: s2 <- socketConnection(open="a+b", port=31415, blocking=FALSE); And so I have two processes communicating with sockets. Now, say on s1, I use socketSelect(list(s1),,0) # Session 1 and it returns FALSE, so nothing is there. Then on s2 I send data with writeBin("Hi", con=s2, size=1) # Session 2 and now socketSelect(list(s1),,0) # Session 1 -> TRUE returns TRUE, so I can read two bytes readBin(s1, what=raw(), n=3, size=1) # Session 1 -> 68, 69, 00 and select then returns false again socketSelect(list(s1),,0) # Session 1 -> FALSE Now here's my problem - it seems that if s2 closes, then socketSelect always returns true close(s2) # Session 2 socketSelect(list(s1),,0) # Session 1 -> TRUE and so if I use readBin session 1 blocks: readBin(s1, what=raw(), n=3, size=1) # Session 1, blocks *FOREVER* I have tried setting options()$timeout before and after creating the sockets, and that doesn't work. Is there some aspect of sockets in R that I am missing? As long as it didn't block and I could just have my own timeout kick out of a while loop I would be happy, but I don't seem to have that option. Is there any way to make readBin not block? ~Matthew Maycock [[alternative HTML version deleted]]