private void ReceiveCallback(IAsyncResult ar) { try { RecBuffer data = (RecBuffer)ar.AsyncState; int count = _socket.EndReceive(ar); if (count == 0) { Debug.WriteLine(" Connection closed "); return; } if (data.buff[count - 1] != STOP) { data.rec.Append(Encoding.ASCII.GetString(data.buff, 0, count)); Debug.WriteLine(data.rec); _socket.BeginReceive(data.buff, 0, BUF_SIZE, 0, new AsyncCallback(ReceiveCallback), data); } else { data.rec.Append(Encoding.ASCII.GetString(data.buff, 0, count - 1)); RecData = data.rec.ToString(); Status = ConnectionStatus.recieved; } } catch (Exception exc) { Error = -1; Debug.WriteLine(" Error while receiving data: " + exc.Message.ToString()); } }
public void Receive() { Status = ConnectionStatus.receiving; RecData = ""; RecBuffer buffer = new RecBuffer(); try { _socket.BeginReceive(buffer.buff, 0, BUF_SIZE, 0, new AsyncCallback(ReceiveCallback), buffer); } catch (Exception exc) { Error = -1; Debug.WriteLine(" Error while receiving data: " + exc.Message.ToString()); } }