현재 닷넷에서 기본 제공되는 Socket
클래스는 윈도우 기반으로 작성되어 있어서,
많은 기능을 지원하지 않거나 사용이 복잡하다고 생각합니다.
특히 SocketOption
을 활용한 세부 기능 설정은 운영체제 호환성 문제와 복잡한 코드 작성이 뒤따릅니다.
가장 큰 문제는 TCP 소켓이 닫혔는지 확인할 수 있는 방법이 제한적이라는 점입니다.
Winsock API
를 통해 확인은 가능하지만, 다른 운영체제는 지원되지 않으며,
전체적인 코드 구성을 바꿔야 하여 코드가 복잡해지는 단점이 있습니다.
예전에 취미로 간단한 통신을 구현했을 때, TCP 소켓이 강제로 닫히면서 메모리 및 스레드 누수가 발생한 경험도 있습니다.
이런 이유로 C#에서 사용하기 좋은 소켓 라이브러리를 찾고 있는데…
알고 계시는 라이브러리가 있으시다면 추천 부탁드립니다.