private void ReceiveCallback(IAsyncResult ar) { StateObject state = (StateObject)ar.AsyncState; Socket handler = state.workSocket; int bytesRec = 0; try { bytesRec = handler.EndReceive(ar); } catch (Exception e) { WriteLog(LogStrings.ExceptionWasThrown(e)); return; } WriteLog(LogStrings.BytesWereReceivedFromServer(bytesRec)); senderSema.Release(); string path = Encoding.UTF8.GetString(state.buffer, 0, bytesRec); PrintResult(path); }