2012-04-09 10 views
0

I beginnen, einen Socket-Server und eine Verbindung zu diesem Server des folgenden R Code verwendet:Wie überprüfen Socket Server ist offen?

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

I führe eine while(TRUE) Schleife in R-Client und um es stoppen möchte, wenn der Sockel in R-Server durch stopSocketServer(port = 8888) geschlossen ist

Habe versucht mit isOpen aber habe kein Glück, da es TRUE zurückgibt, auch wenn ich R-Server stoppe.

Antwort

0

Sie müssen den Socket-Client nicht manuell schließen. Das svSocket Paket hat einen closeSocketClients Befehl, der von stopSocketServer aufgerufen wird. Seltsamerweise wird socketConnection in the documention on CRAN erwähnt und verknüpft, aber es gibt keine manuelle Eingabe. Es gibt jedoch eine Funktion namens socketClientConnection, die die von Ihnen gesuchte Funktion sein könnte. Es kann sein, dass das Paket einige Änderungen erfahren hat, die in der Dokumentation nicht richtig beschrieben sind. Vielleicht möchten Sie dem Paketbetreuer eine E-Mail senden.

1

Ich habe ein ähnliches Problem manchmal bei der parallelen Arbeit mit snow und Verbindungen sind nicht richtig geschlossen.

, wenn Sie erhalten Fehlermeldung über:

summary.connections(connection) : Invalid connection 

Ich benutze:

closeAllConnections() 

alle Verbindungen zu schließen, die offen gelassen werden.

Verwandte Themen