CHOPS NET IP는 비동기 네트워킹 프로그래밍을 재미있게 만드는 C ++ 라이브러리입니다. 또는 적어도 재미 있지 않으면 성능을 크게 희생하지 않고 네트워크 프로그래밍을보다 쉽고 안전하게 만듭니다. Net IP는 TCP, UDP 및 UDP 멀티 캐스트를 포함한 인터넷 프로토콜 (IP) 통신을 처리합니다. 최신 C ++ 디자인 관용구와 최신 (2017) C ++ 표준을 사용하여 작성되었습니다.
CHOPS NET IP는 다른 고급 범용 C ++ 소켓 라이브러리와 다릅니다.
Chops Net IP는 ASIO 비동기 네트워킹 라이브러리 위에 레이어링되어 ASIO가 제공하는 이식성 및 기능을 활용합니다. 그러나 ASIO API에 대한 코딩과 비교하여 네트워크 프로그래밍을 단순화하면서 비동기 시설을 통해 쉽게 확장 할 수 있습니다.
Travis CI 빌드 상태 :
마스터 브랜치 | 지점 개발 |
GitHub 조치 CI 빌드 상태 :
최신 태그 :
릴리스 1.0은 2020 년 1 월 현재 개발중인 CMAKE 향상, 포괄적 인 자습서 및 여러 컴파일러 및 플랫폼에서 추가 테스트를 기다리고 있습니다.
릴리스 노트 및 다가오는 개발 계획은 여기에서 제공됩니다.
이 프로젝트는 Boost 소프트웨어 라이센스에 따라 배포됩니다.
많은 소프트웨어 개발자의 경우 C ++의 비동기 네트워크 프로그래밍은 쉽지 않습니다. 그것은 복잡하고 함정이 많으며 수년간의 경험을 가진 사람들에게도 자연스럽지 않은 방식으로 C ++ 코드를 설계해야합니다. NET IP ( "C"Onnective "H"및 제작 된 "OP"ENWORK "S"OFTWARE, 인터넷 프로토콜을 통한 네트워킹)는 비동기 네트워크 프로그래밍을 단순화하고 많은 유형의 통신 패턴에 대한 유용한 (및 맛있는!) 추상화를 제공합니다.
CHOPS Net IP는 Chris Kohlhoff의 ASIO 라이브러리 위에 겹쳐져 있으며 (참조 참조) 많은 컴파일러 및 플랫폼에서 휴대용이 가능합니다. C ++ 네트워킹 TS가 표준화되면 (C ++ 23이지만 C ++ 26 가능성이 높음) Net IP는 C ++ 표준 라이브러리의 네트워킹 기능을 직접 사용합니다.
CHOPS NET IP는 여러 동시 TCP 연결 또는 UDP 엔드 포인트에서 데이터를 처리하는 응용 프로그램 코드를 단순화합니다. 모든 CHOPS NET IP 운영 (응용 프로그램 관점에서)은 웨이트가 없으며 (즉, 차단 방법이 없음) 모든 네트워크 처리 작업은 비동기 적으로 수행됩니다.
Net IP 기능을 삭감 :
CHOPS NET IP는 응용 프로그램이 수백 (또는 수천 개)의 네트워크 연결을 생성하고 동시에 처리 할 수 있도록 쉽고 효율적으로 설계되었습니다. 특히 CHOPS Net IP에는 스레드 또는 스레드 풀이 없으며 이벤트 루프 (현재 C ++ 용어)에서 이벤트 루프 (Executor)를 호출하는 하나의 응용 프로그램 스레드와 잘 작동합니다.
chops net ip가 적합한 예제 환경 :
예제 데모 프로그램은 /example 디렉토리에 있습니다.
simple_chat_demo.cpp 프로그램에는 작업 예제를 설정하기위한 여러 단계의 목록이 있습니다.
자세한 개요, C ++ 소켓 라이브러리 비교 및 FAQ는 여기에서 확인할 수 있습니다.
C ++ 17 은이 저장소의 기본 기준입니다. 가능한 대안에 대한 추가 메모는 여기에서 확인할 수 있습니다.
생산 외부 의존성 :
asio 라이브러리의 버전 1.13 (또는 이후)이 필요합니다. 부스트 ASIO 버전이 아니라 독립형 ASIO 라이브러리입니다.utility-rack 라이브러리는 Net IP를 CHOPS와 동일한 github 계정의 저장소입니다.외부 종속성 테스트 :
Catch2 라이브러리의 버전 2.8.0 (또는 이후)은 모든 테스트 시나리오에 필요합니다. 다양한 GitHub 리포지토리에서 utility-rack 저장소의 third_party 디렉토리에 복사 된 단일 파일 헤더가 있으며 외부 종속성 관리가 필요하지 않습니다. 이들은 다음과 같습니다.
expected-lite 라이브러리.자세한 내용은 참조를 참조하십시오.
CHOPS NET IP가 컴파일되었고 테스트가 실행됩니다.
추가 빌드 환경에 대해서는 CI 링크를 따르십시오.
CHOPS Net IP는 헤더 전용이므로 설치는 다운로드 또는 클로닝으로 구성되며 컴파일러는 경로를 적절하게 포함합니다. 컴파일 시간 구성 매크로가 정의되지 않습니다.
Chops Net IP의 종속성 및 영감에 대한 자세한 내용은 참조를 참조하십시오.
팀원 정보는 여기에서 제공됩니다.
몇 가지 "클리프 노트"가 여기에 있습니다.