2

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

誰にもアイデアがありますか?どうもありがとう!

4

0 に答える 0