많은 패킷을 보내는 네트워크 응용 프로그램을 개발 중입니다. 현재, 직렬화 방법은 객체의 목록을 파이프 문자 '|'로 구분 된 문자열로 변환하는 해킹 일뿐입니다. 네트워크 스트림으로 플러시 (또는 UDP를 통해 전송)합니다.C# - 네트워크를 통한 패킷 일련 화
패킷 크기를 최소화하면서 (C#에서는 거대한 XML 직렬화가 필요 없음) C#에서 더 깨끗한 해결책을 찾고 있습니다.
내 경험이 BinaryFormatter is SLOW
입니다. 또한 base64
문자열로 인코딩하여 내 패킷을 압축하여 클라이언트 쪽에서 디코딩하는 것을 고려 중입니다. 이것이 응용 프로그램의 성능에 어떻게 영향을 주는지에 대한 의견을 듣고 싶습니다.
또한, 다른 빠른 질문 :
는내 설정은 2 소켓 (한 TCP and UDP
)를 생성하고 클라이언트는이 두 소켓에 개별적으로 연결합니다. 데이터는 필요에 따라 하나씩 삭제됩니다 (중요한 항목은 TCP, 중요하지 않은 항목은 UDP). 이것은 처음으로 TCP/UDP를 사용하여 궁금해졌습니다. 더 통일 된 방법이 있다면 그렇게 보이지는 않지만 궁금합니다.
대단히 감사드립니다.
BinaryReader/Writer를 피하는 이유는 BinaryFormatter가 얼마나 느린가 때문입니다. 이 VS BFormatter의 속도에 대한 아이디어가 있습니까? –