private void sendCallback(IAsyncResult ar) { try { sendState state = ar.AsyncState as sendState; int sizeSend = state.socket.EndSend(ar); if (!state.sent) { log("Sizeinfo sent."); state.sent = true; //sending actual data state.socket.BeginSend(state.data, 0, state.data.Length, SocketFlags.None, new AsyncCallback(sendCallback), state); } else { log($"Sent {sizeSend} Bytes to the Server."); state.Dispose(); } } catch { log("Failed sending Message!"); closeClient(); } }
public void sendData(byte[] data) { try { //send sizeinfo byte[] sizeInfo = BitConverter.GetBytes(data.Length); sendState state = new sendState(); state.socket = this.socket; state.data = data; state.socket.BeginSend(sizeInfo, 0, sizeInfo.Length, SocketFlags.None, new AsyncCallback(sendCallback), state); } catch { log("Error sending Message to the Client: " + this.id); closeClient(); } }