private void OnAccept(Tcp client, ReadableBuffer data) { if (data.Count == 0) { log($"server OnAccept: data count is 0"); return; } ////log($"server read {data.Count}"); Interlocked.Increment(ref this.receiveCount); // Echo back var buffer = new byte[data.Count]; data.ReadBytes(buffer, buffer.Length); data.Dispose(); var writableBuffer = WritableBuffer.From(buffer); client.QueueWriteStream( writableBuffer, (streamHandle, exception) => { writableBuffer.Dispose(); if (exception != null) { log($"server write error: {exception.Message}"); streamHandle.CloseHandle(h => h.Dispose()); } else { client.OnRead( this.OnAccept, (_h, _e) => { log($"read error {_e.Message}"); }); } }); ////log($"server wrote {buffer.Length}"); }
private void OnAccept(StreamHandle stream, ReadableBuffer data) { if (data.Count == 0) { log($"client OnAccept: data count is 0"); return; } ////log($"client accept {data.Count}"); // Echo back var buffer = new byte[data.Count]; data.ReadBytes(buffer, buffer.Length); data.Dispose(); var writableBuffer = WritableBuffer.From(buffer); stream.QueueWriteStream( writableBuffer, (handle, exception) => { writableBuffer.Dispose(); if (exception != null) { log($"client write error: {exception.Message}"); handle.CloseHandle(h => h.Dispose()); } else { stream.OnRead( this.OnAccept, (_h, _e) => { log($"read error {_e.Message}"); }); } }); ////log($"client wrote {buffer.Length}"); }