如何使用R连接两台计算机?

时间:2016-03-07 16:48:29

标签: r sockets websocket communication

是否可以在两台不同的计算机上打开两个R会话之间的通信流?

如果两者都在同一台计算机上,我会使用套接字来连接会话。我想有两台不同的电脑,我应该试试网络套接字。 httpuv支持R作为Web套接字服务器,但遗憾的是,我找不到任何支持R中客户端Web套接字的最新软件包。

我不喜欢使用网络套接字。任何能够以实时方式实现计算机之间通信的解决方案都可以使用。

1 个答案:

答案 0 :(得分:1)

我使用sockets在使用R的计算机之间进行通信。

服务器示例:

import socket

server <- function(){
  while(TRUE){
    writeLines("Listening...")
    con <- socketConnection(host="localhost", port = 6011, blocking=TRUE,
                            server=TRUE, open="r+")
    data <- readLines(con, 1)
    print(data)
    response <- toupper(data) 
    writeLines(response, con) 
    close(con)
  }
}
server()

客户端示例:

import socket

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("localhost", 6011))
while 1:
    data = raw_input ( "Enter text to be upper-cased, q to quit\n" )
    client_socket.send(data)
    if ( data == 'q' or data == 'Q'):
        client_socket.close()
        break;
    else:        
        data = client_socket.recv(5000)
        print "Your upper cased text:  " , data