C# 소켓 프로그래밍 중, Socket.SendAsync(SocketAsyncEventArgs e) 메서드를 사용해 List 의 모든 클라이언트에 대해 전송 작업을 하다 보니 클라이언트가 두 개 이상이 될 경우 SocketAsyncEventArgs를 사용해 비동기 작업이 이미 진행중이라는 에러가 발생했습니다. 그래서 이것 저것 시도해보다가 결국 SendAsync를 BeginSend로 바꿔 해결했습니다. 기존 코드: foreach (var client in clients) { client.SendAsync(args); } 변환 후 코드: foreach (var client in clients) { client.BeginSend(data, 0, data.Length, SocketFlags.None, new AsyncCallback(SendCallback), client); } // SendCallback private void SendCallback(IAsyncResult IAR) { Socket client = IAR.AsyncStatus as Socket; client?.EndSend(IAR); }