Chops Net IP เป็นไลบรารี C ++ ที่ทำให้การเขียนโปรแกรมเครือข่ายแบบอะซิงโครนัสสนุก หรืออย่างน้อยถ้าไม่สนุกก็ทำให้การเขียนโปรแกรมเครือข่ายง่ายขึ้นและปลอดภัยขึ้นโดยไม่ต้องเสียสละประสิทธิภาพอย่างมีนัยสำคัญ Chops Net IP จัดการการสื่อสาร Internet Protocol (IP) รวมถึง TCP, UDP และ UDP Multicast มันถูกเขียนขึ้นโดยใช้สำนวนการออกแบบ C ++ ที่ทันสมัยและมาตรฐานล่าสุด (2017) C ++
Chops Net IP ไม่เหมือนกับไลบรารีซ็อกเก็ตระดับสูงระดับสูงอื่น ๆ
Chops Net IP อยู่ด้านบนของไลบรารีเครือข่าย ASIO แบบอะซิงโครนัสใช้ประโยชน์จากความสามารถในการพกพาและฟังก์ชั่นที่ ASIO ให้ อย่างไรก็ตามมันทำให้การเขียนโปรแกรมเครือข่ายง่ายขึ้นเมื่อเทียบกับการเข้ารหัสกับ ASIO API ในขณะที่ให้ความสามารถในการปรับขนาดได้ง่ายผ่านสิ่งอำนวยความสะดวกแบบอะซิงโครนัส
Travis CI สถานะการสร้าง:
สาขาหลัก | พัฒนาสาขา |
การกระทำของ GitHub CI สร้างสถานะ:
แท็กล่าสุด:
Release 1.0 อยู่ระหว่างการพัฒนา ณ เดือนมกราคม 2563 รอการปรับปรุง CMake การสอนที่ครอบคลุมและการทดสอบเพิ่มเติมภายใต้คอมไพเลอร์และแพลตฟอร์มหลายแห่ง
บันทึกการเปิดตัวและแผนการพัฒนาที่กำลังจะมาถึงมีอยู่ที่นี่
โครงการนี้จัดจำหน่ายภายใต้ใบอนุญาตซอฟต์แวร์ Boost:
สำหรับนักพัฒนาซอฟต์แวร์หลายคนการเขียนโปรแกรมเครือข่ายแบบอะซิงโครนัสใน C ++ นั้นไม่ใช่เรื่องง่าย มันซับซ้อนมีข้อผิดพลาดมากมายและต้องมีการออกแบบรหัส C ++ ในลักษณะที่ไม่เป็นธรรมชาติแม้สำหรับผู้ที่มีประสบการณ์มานานหลายปี Chops net IP ("C" ที่มีส่วนร่วม "H" Andcrafted "OP" enwork "S" ของ THRAWE, เครือข่ายผ่านโปรโตคอลอินเทอร์เน็ต) ทำให้การเขียนโปรแกรมเครือข่ายแบบอะซิงโครนัสง่ายขึ้นและให้ประโยชน์ที่เป็นประโยชน์ (และอร่อย!)
Chops Net IP อยู่ด้านบนของ ASIO Library ของ Chris Kohlhoff (ดูการอ้างอิง) ทำให้สามารถพกพาได้ในคอมไพเลอร์และแพลตฟอร์มจำนวนมาก เมื่อเครือข่าย C ++ TS ได้มาตรฐาน (อาจเป็น C ++ 23 แต่มีแนวโน้มที่จะ C ++ 26) CHOPS NET IP จะใช้สิ่งอำนวยความสะดวกเครือข่ายโดยตรงของไลบรารีมาตรฐาน C ++
Chops IP จะทำให้รหัสแอปพลิเคชันง่ายขึ้นที่ประมวลผลข้อมูลในการเชื่อมต่อ TCP หลายตัวพร้อมกันหรือจุดสิ้นสุด UDP การดำเนินการ IP NET CHOPS ทั้งหมด (จากมุมมองแอปพลิเคชัน) ไม่มีการรอ (เช่นไม่มีวิธีการปิดกั้น) และการดำเนินการประมวลผลเครือข่ายทั้งหมดจะดำเนินการแบบอะซิงโครนัส
สับฟังก์ชัน IP สุทธิ:
Chops Net IP ได้รับการออกแบบมาเพื่อให้ง่ายและมีประสิทธิภาพสำหรับแอปพลิเคชันในการสร้างการเชื่อมต่อเครือข่ายหลายร้อย (หรือหลายพัน) และจัดการพร้อมกัน โดยเฉพาะอย่างยิ่งไม่มีเธรดหรือพูลเธรดภายใน Chops Net IP และทำงานได้ดีโดยมีเธรดแอปพลิเคชันเพียงหนึ่งเดียวที่เรียกใช้ลูปเหตุการณ์ (ผู้ดำเนินการในคำศัพท์ C ++ ปัจจุบัน)
ตัวอย่างสภาพแวดล้อมที่ chops net ip เป็นแบบที่ดี:
ตัวอย่างโปรแกรมสาธิตอยู่ในไดเรกทอรี /example
โปรแกรม simple_chat_demo.cpp มีรายชื่อหลายขั้นตอนในการตั้งค่าตัวอย่างการทำงาน
ภาพรวมโดยละเอียดการเปรียบเทียบห้องสมุด C ++ ซ็อกเก็ตและคำถามที่พบบ่อยมีให้ที่นี่
C ++ 17 เป็นพื้นฐานหลักสำหรับที่เก็บนี้ หมายเหตุเพิ่มเติมเกี่ยวกับทางเลือกที่เป็นไปได้มีอยู่ที่นี่
การผลิตภายนอกการพึ่งพา:
asio ของ Chris Kohlhoff เป็นสิ่งจำเป็น โปรดทราบว่ามันเป็นไลบรารี ASIO แบบสแตนด์อโลนไม่ใช่รุ่น ASIO ที่เพิ่มขึ้นutility-rack ซึ่งเป็นที่เก็บในบัญชี GitHub เดียวกันกับ Chops Net IPทดสอบการพึ่งพาภายนอก:
Catch2 ของ Phil Nash เป็นสิ่งจำเป็นสำหรับสถานการณ์ทดสอบทั้งหมด มีส่วนหัวไฟล์เดียวที่ได้รับการคัดลอกไปยังไดเรกทอรี third_party ของที่เก็บ utility-rack จากที่เก็บ GitHub ต่างๆและไม่จำเป็นต้องมีการจัดการการพึ่งพาภายนอกใด ๆ นี่คือ:
expected-lite ของ Martin Moeneดูข้อมูลอ้างอิงสำหรับรายละเอียดเพิ่มเติม
Chops Net IP ได้รับการรวบรวมและการทดสอบทำงานบน:
ไปตามลิงค์ CI สำหรับสภาพแวดล้อมการสร้างเพิ่มเติม
Chops net IP เป็นส่วนหัวเท่านั้นดังนั้นการติดตั้งประกอบด้วยการดาวน์โหลดหรือโคลนนิ่งและการตั้งค่าคอมไพเลอร์รวมเส้นทางที่เหมาะสม ไม่มีการกำหนดมาโครการกำหนดค่าเวลาคอมไพล์
ดูการอ้างอิงสำหรับรายละเอียดเกี่ยวกับการพึ่งพาและแรงบันดาลใจสำหรับการสับ IP net
ข้อมูลสมาชิกในทีมมีอยู่ที่นี่
มี "Cliff Notes" ไม่กี่แห่งที่นี่