Uso Dart 1.8.5 sul server. Voglio implementare TCP Socket Server che ascolta le connessioni in entrata, invia alcuni dati a ogni client e si ferma a generare dati quando il client si disconnette.Come gestire il socket si disconnette in Dart?
Ecco il codice di esempio
void main() {
ServerSocket.bind(
InternetAddress.ANY_IP_V4,
9000).then((ServerSocket server) {
runZoned(() {
server.listen(handleClient);
}, onError: (e) {
print('Server error: $e');
});
});
}
void handleClient(Socket client) {
client.done.then((_) {
print('Stop sending');
});
print('Send data');
}
Questo codice accetta le connessioni e le stampe "Invia i dati". Ma non stamperà mai "Interrompi invio" anche se il cliente era sparito.
La domanda è: come intercettare il client in ascolto?
Per me questo sembra un bug. Crea un problema su http://dartbug.com –
https://code.google.com/p/dart/issues/detail?id=22583 – lig
Puoi vedere un esempio nella mia risposta. Visualizza 'Interrompi invio 'e nei detals espande il problema riscontrato nell'SDK Dart. – mezoni