void onConnect() {
void onWrite(Socket sock, int offset) {
int written = sock.writeList(output, offset, output.length - offset);
if (written > 0 && written < output.length - offset)
sock.setWriteHandler(() => onWrite(sock, offset + written));
else
sock.close();
}
void onData(Socket sock) {
List<int> buf = new List<int>(1024);
// this is incomplete - should keep reading until a full HTTP request is received
sock.readList(buf, 0, buf.length);
sock.setWriteHandler(() => onWrite(sock, 0));
}
void onClose(Socket sock) {
sock.close();
}
Socket receiveSocket = serverSocket.accept();
receiveSocket.setCloseHandler(() => onClose(receiveSocket));
receiveSocket.setDataHandler(() => onData(receiveSocket));
return;
}