public void OnDataRecieved(IAsyncResult res) { Socket sock = (Socket)res.AsyncState; try { //store state and any user define data int RecByte = sock.EndReceive(res); if (RecByte > 0) { sound.PlayReceivedVoice(buffer); CallbackRecieveSetup(sock); } else { sock.Shutdown(SocketShutdown.Both); sock.Close(); } } catch (Exception) { } }
/// <summary> /// Интерфейс реализован с помощью классов, содержащих методы, которые могут работать асинхронно. /// </summary> /// <param name="ar">содержит сведения об асинхронной операции</param> public void OnRecievedData(IAsyncResult ar) { Socket secket = (Socket)ar.AsyncState; try { int LenRec = secket.EndReceive(ar); if (LenRec > 0) { sound.PlayReceivedVoice(_buffer); SetupRecieveCallback(secket); } else { secket.Shutdown(SocketShutdown.Both); secket.Close(); } } catch (Exception) { } }