我试图让两个 R 程序通过套接字进行通信。这是代码:
程序A
con <- tryCatch(socketConnection(port=10170),error=function(e) return(FALSE))
repeat
{
x <- tryCatch(unserialize(con),error=function(e) return(NULL))
if(!is.null(x))
{
print(x)
break
}
Sys.sleep(.01)
}
方案 B
con <- tryCatch(socketConnection(port=10170,server=T),error=function(e) return(FALSE))
Sys.sleep(3)
serialize("account and trader disconnected",con)
close(con)
这是问题所在。似乎程序B在写入时程序A可能会读取套接字,因此A只是获取字符串的一部分。结果是这样的:
accou\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\ xff\xff
有人有想法吗?非常感谢!