2 つの 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
誰にもアイデアがありますか?どうもありがとう!