在Python中,我能够编写用于套接字编程的代码,以通过UDP接收数据流.
但是,如何在R中使用等效代码来执行相同操作?
import socket, traceback
host = ''
port = 5555
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.bind((host, port))
counter = 1500
while counter > 0:
counter -= 1
try:
message, address = s.recvfrom(8192)
message = message.decode()
data = message.split(",")
print(data)
except (KeyboardInterrupt, SystemExit):
raise
except:
traceback.print_exc()
Run Code Online (Sandbox Code Playgroud)
在RI尝试下面的代码,这是不成功的.我确实意识到我需要提到它是UDP和所有,但无法找到这些设置.
我需要从设备接收数据的"流".我需要有R服务器吗?
平台x86_64-pc-linux-gnu
os linux-gnu
version.string R版本3.2.3(2015-12-10)RStudio版本1.0.44
server <- function(){
while(TRUE){
writeLines("Listening...")
con <- socketConnection(host="localhost", port = 5555, blocking=TRUE,server=TRUE, open="r+")
data <- readLines(con, 1)
print(data)
close(con)
}
}
server()
Run Code Online (Sandbox Code Playgroud) r ×1