如何检查套接字服务器是否已打开?

时间:2012-04-09 08:36:38

标签: r sockets

我使用以下R代码启动套接字服务器和与该服务器的连接:

library(svSocket)
R server: socket <- startSocketServer(port=8888)   
R client: socketcon <- socketConnection(port=8888)

我在R客户端运行while(TRUE)循环,如果R服务器中的套接字被stopSocketServer(port = 8888)

关闭,我想停止它

尝试使用isOpen但没有运气,因为即使我停止R服务器它也会返回TRUE。

2 个答案:

答案 0 :(得分:1)

使用snow进行并行工作时,有时会出现类似的问题,并且连接未正确关闭。

当您收到有关以下内容的错误消息时:

 summary.connections(connection) : Invalid connection

我用:

closeAllConnections()

关闭所有打开的连接。

答案 1 :(得分:0)

您无需手动关闭套接字客户端。 svSocket包具有closeSocketClients命令,由stopSocketServer调用。奇怪的是,在the documention on CRAN中提及并链接了socketConnection,但没有手动输入。但是,有一个名为socketClientConnection的函数,它可能是您正在寻找的函数。可能是程序包已经看到一些更改,这些更改未在文档中正确描述。您可能希望向软件包维护者发送一封电子邮件。