MUSCLE

ภาพหน้าจอของซอฟแวร์:
MUSCLE
รายละเอียดซอฟแวร์:
รุ่น: 6.82 การปรับปรุง
วันที่อัพโหลด: 22 Jun 18
ผู้พัฒนา: Jeremy Friesner
การอนุญาต: ฟรี
ความนิยม: 26

Rating: 5.0/5 (Total Votes: 1)

MUSCLE ย่อมาจาก Multi User Server Client Linkage Environment และเป็นระบบส่งข้อความแบบโอเพนซอร์สระบบฟรีที่มีประสิทธิภาพสามารถปรับขยายได้และข้ามแพลตฟอร์มซึ่งประกอบด้วยส่วนประกอบของเซิร์ฟเวอร์และไคลเอ็นต์ จะช่วยให้คุณสามารถเขียนซอฟต์แวร์แจกจ่ายได้ทุกรูปแบบจากเกมแบบมัลติเพลย์เยอร์และไคลเอ็นต์การสนทนาของ IRC ไปยังแอปคำนวณของ SETI


คุณสมบัติได้อย่างรวดเร็ว

ด้วย MUSCLE ผู้ใช้จะสามารถปรับแต่งเซิร์ฟเวอร์ "muscled" ที่มีอยู่ได้โดยง่ายด้วยการกำหนดโปรซีเจอร์เซสชันของตนเองหรือโปรโตคอลสตรีมมิงข้อความ ซอฟต์แวร์ช่วยให้คุณเขียนรหัสลูกค้าของคุณได้ในภาษาโปรแกรม C ++, C, C #, Java, Delphi หรือ Python

โปรแกรมจะใช้กล้ามเนื้อเหมือน BMessage :: Messages สนับสนุนการส่งกล้ามเนื้อที่แบน :: ข้อความระหว่างคอมพิวเตอร์ผ่านทาง TCP (Transmission Control Protocol) จะใช้เซิร์ฟเวอร์ & ldquo; muscled server & rdquo; บนเครื่องเซิร์ฟเวอร์ช่วยให้คุณเขียนโปรแกรมไคลเอ็นต์ที่สามารถใช้ในการสื่อสารกับเซิร์ฟเวอร์ได้

นอกจากนี้ยังมี API การส่งข้อความแบบข้อความเดียวและหลายเธรดที่สนับสนุนภาษาโปรแกรมทั้งหมดที่กล่าวมาข้างต้น เซิร์ฟเวอร์ & nbsp; muscled & rdquo; สามารถกำหนดค่าได้ง่ายโดยการกำหนดโปรโตคอลสตรีมมิ่งข้อความหรือตรรกะเซสชัน

เริ่มต้นใช้ MUSCLE

หลังจากการเข้าสู่ระบบที่ประสบความสำเร็จโปรแกรมไคลเอนต์สามารถกำหนดว่าใครที่ถูกล็อกอินเข้าสู่เซิร์ฟเวอร์ส่วนกลางเช่นเดียวกับการจัดเก็บกล้ามเนื้อ :: ข้อความใน RAM (หน่วยความจำของระบบ) และส่งกล้ามเนื้อ :: ข้อความไปยังไคลเอ็นต์อื่น ๆ ที่เชื่อมต่อ ไปยังเซิร์ฟเวอร์ โปรดทราบว่าโปรแกรมไคลเอ็นต์สามารถสมัครรับข้อมูลเฉพาะเจาะจงบนเซิร์ฟเวอร์และรับการแจ้งเตือนทันทีเมื่อมีการเปลี่ยนแปลงข้อมูล


รองรับการกำหนดเส้นทางข้อความได้หลากหลาย

ซอฟต์แวร์ได้รับการออกแบบมาเพื่อรองรับการกำหนดเส้นทางข้อความหลากหลายรูปแบบรวมทั้งรูปแบบที่มีรูปแบบเดียวแบบกระจายและแบบหลายผู้รับผ่านกลไกการกำหนดเส้นทางที่มีรูปแบบอัจฉริยะตามลำดับขั้น


OSes ที่สนับสนุนและความพร้อมใช้งาน

MUSCLE ทำงานบนระบบปฏิบัติการที่รองรับ POSIX ใด ๆ มีการแจกจ่ายเป็นที่เก็บข้อมูลสากลแบบเดียวที่ช่วยให้ผู้ใช้สามารถเพิ่มประสิทธิภาพแอพพลิเคชันสำหรับระบบ GNU / Linux ได้ แพลตฟอร์มฮาร์ดแวร์ทั้งแบบ 32 บิตและ 64 บิตได้รับการสนับสนุนในขณะนี้

มีอะไรใหม่ ในรุ่นนี้:

  • test / Makefile-mt ไม่พยายามรวบรวม testreflects อีกต่อไปยกเว้นเมื่อรันบนระบบปฏิบัติการที่ testreflectsession สนับสนุน
  • การแก้ไขเล็กน้อยและการจัดเรียง & quot; MUSCLE by Example & quot; หน้า.
  • แทนที่ "แท็ก" จำนวนหนึ่งใน MkDocs ด้วย [URL] (... )
  • ลบการสืบทอดมรดกของ CountedObject จากชั้นเรียนทั้งหมดที่มีอยู่แล้ว - ขณะนี้พวกเขารวมตัวแปรสมาชิก Privateed CountedObject แทน การทำเช่นนี้เกิดขึ้นได้ก็เพราะว่าสิ่งที่มรดกภาคเอกชนกำลังยุ่งอยู่กับกราฟการสืบทอด DOxygen
  • เพิ่มมาโคร DECLARE_COUNTED_OBJECT เพื่อ CountedObject.h เพื่อลดความเป็นไปได้ที่อาจเกิดขึ้นกับหน่วยความจำของ CountedObjects ในกรณีที่ไม่ต้องการนับวัตถุ
  • ลบการสนับสนุน --DMUSCLE_AVOID_OBJECT_COUNTING และเพิ่มมาโคร --DMUSCLE_ENABLE_OBJECT_COUNTING ในตำแหน่ง (นั่นคือคลาส CountedObject ถูกปิดใช้งานโดยค่าเริ่มต้นและต้องเปิดใช้งานอย่างชัดเจนเพื่อที่จะใช้)
  • เพิ่มคำว่า "MUSCLE by Example" & quot; เอกสารสำหรับ MiscUtilityFunctions {cpp, h}
  • เปลี่ยนแท็กในแท็ก `MkDocs MUSCLE-by-Example เป็น [urls] เพื่อให้สามารถอ่านวิธีการที่พวกเขากล่าวถึงได้อย่างรวดเร็ว
  • เซิร์ฟเวอร์ / Makefile ตอนนี้ระบุ libmuscle.a หลังจากไฟล์ main () .o
  • แก้ไขคำเตือน gcc บางอย่างในโฟลเดอร์ทดสอบ (ตามคำแนะนำของ Mika)
  • UnparseFile () ไม่ได้ระบุคำหลักด้วยช่องว่างอย่างถูกต้อง คง.
  • แก้ไขการอ้างอิงใน & quot; MUSCLE by Example & quot; ตัวอย่าง Makefiles

  • เพิ่มเมธอด ShrinkToFit () ใน Queue, Hashtable, และชั้นสตริง วิธีนี้ทำให้วัตถุลดลงเพื่อให้จำนวนหน่วยความจำที่จัดสรรภายในตรงกับขนาดของข้อมูลที่ถืออยู่จริง
  • Hashtable :: EnsureSize () และ Queue :: EnsureSize () ใช้อาร์กิวเมนต์ optional (allowShrink) เพื่อให้อาร์เรย์ที่ถูกจัดสรรภายในของอ็อบเจ็กต์ถูกจัดสรรใหม่หากมีขนาดใหญ่กว่าที่จำเป็น
  • ปรับแต่งพฤติกรรมการขยายบัฟเฟอร์ของคลาสสตริงให้มีประสิทธิภาพมากขึ้น
  • เพิ่มการป้องกันซ้ำกับการทับทิมอนันต์ที่อาจเกิดขึ้นขณะบันทึกข้อความ & quot; OUT OF MEMORY & quot; ข้อผิดพลาดหลังจากความล้มเหลวในการจัดสรรหน่วยความจำถ้า LogCallback พยายามจัดสรรหน่วยความจำ

  • มีอะไรใหม่ ในเวอร์ชัน 6.01:

    • เพิ่มเมธอดความสะดวก PrependWord () ลงในคลาสสตริง
    • เพิ่มเมธอดความสะดวกในการใช้ WithReplacements () ลงในคลาสสตริง
    • เพิ่มเมธอด SetExplicitDelayMicros () ลงในคลาส DetectNetworkConfigChangesSession
    • เพิ่มเมธอด IsCopperDetected () ลงในคลาส NetworkInterfaceInfo เพื่อให้รหัสสามารถระบุว่ามีช่องเสียบสายเคเบิลเชื่อมต่ออยู่หรือไม่
    • เพิ่มคำว่า & quot; quietsend & quot; อาร์กิวเมนต์ที่ hexterm
    • เมธอด VirtualInterfacesChanged () ในคลาส DetectNetworkConfigChangesSession ได้รับการเปลี่ยนแปลงเพื่อใช้อาร์กิวเมนต์ที่เรียกใช้ว่าอินเทอร์เฟซเครือข่ายใดที่มีการเปลี่ยนแปลง ฟังก์ชันนี้ใช้งานได้ภายใต้ Linux, MacOS / X และ Windows เท่านั้น สำหรับอาร์เรย์อื่น ๆ ของ OS จะเป็นรายการว่างเปล่า
    • แก้ไขข้อผิดพลาดในการใช้งาน DetectNetworkConfigChangesSession ของลินุกซ์ซึ่งอาจทำให้เกิดข้อผิดพลาดในการแบ่งส่วนได้หาก recvmsg () ส่งคืนข้อผิดพลาด (เช่นเนื่องจากได้รับสัญญาณ)

    • มีอะไรใหม่ ในเวอร์ชัน 6.00:

      • เขียนคลาส SSLSocketDataIO ใหม่ให้ทำงานได้ดีขึ้นโดยใช้ I / O ที่ไม่บล็อก (ร่วมกับคลาส SSLSocketAdapterGateway ใหม่)
      • เพิ่มการใช้งาน SSLSocketDataIO :: SetPrivateKey () และ SSLSocketDataIO :: SetCertificate () ที่ใช้ ByteBuffer เป็นอาร์กิวเมนต์
      • เพิ่มคลาส SSLSocketAdapterGateway ที่ใช้ในการจัดการเครื่องภายในของ OpenSSL เมื่อใช้คลาส SSLSocketDataIO กับเกตเวย์ของคุณ
      • เพิ่มเมธอด SetSSLPrivateKey () และ GetSSLPrivateKey () ลงในคลาส ReflectServer เพื่อเปิดใช้งานการตรวจสอบสิทธิ์ SSL บนการเชื่อมต่อ TCP ที่เข้ามาได้ง่ายขึ้น มีการกำหนดวิธีการเหล่านี้ไว้และกำหนดไว้ MUSCLE_ENABLE_SSL
      • เพิ่มเมธอด SetSSLPublicKeyCertificate () และ GetSSLPublicKeyCertificate () ลงในคลาส ReflectServer เพื่อเปิดใช้การตรวจสอบสิทธิ์ SSL บนการเชื่อมต่อ TCP แบบขาออกได้ง่ายขึ้น มีการกำหนดวิธีการเหล่านี้ไว้และกำหนดไว้ MUSCLE_ENABLE_SSL
      • เพิ่มเมธอด SetSSLPrivateKey () และ SetSSLPublicKeyCertificate () ในคลาส MessageTransceiverThread เพื่อเปิดใช้งานฟังก์ชัน SSL อย่างรวดเร็วเมื่อใช้ I / O แบบเกลียว
      • เพิ่มโฟลเดอร์ ssl_data พร้อมกับข้อมูลเกี่ยวกับการสร้างกุญแจสาธารณะ / คีย์สาธารณะของ OpenSSL และตัวอย่างคีย์พพ์สำหรับใช้ทดสอบ OpenSSL
      • เมื่อกำหนด MUSCLE_ENABLE_SSL แล้ว muscled จะยอมรับอาร์กิวเมนต์ 'privatekey = filename' ที่ไม่บังคับ เมื่อระบุไว้โหมด SSL จะเปิดใช้งานและ muscled จะยอมรับเฉพาะการเชื่อมต่อ TCP ที่มาที่แสดงคีย์สาธารณะที่ตรงกับคีย์ส่วนตัว / ใบรับรองนี้เท่านั้น
      • เมื่อกำหนด MUSCLE_ENABLE_SSL แล้ว portablereflectclient และ qt_example จะยอมรับอาร์กิวเมนต์ 'publickey = filename' ที่ไม่บังคับ เมื่อระบุไว้โหมด SSL จะเปิดใช้งานและไคลเอ็นต์เหล่านี้จะเชื่อมต่อกับ muscled โดยใช้ OpenSSL และแสดงไฟล์นี้เป็นข้อมูลรับรองของตน
      • เพิ่ม & quot; ภาพเคลื่อนไหว & quot; เพื่อตรวจสอบ qt_example การตรวจสอบจะทำให้หน้าต่างเลื่อนตัวบ่งชี้ไปรอบ ๆ โดยอัตโนมัติ นี่เป็นเรื่องสนุกและมีประโยชน์หากคุณต้องการทดสอบภาพจำลองที่หลายเครื่องสร้างการเข้าชมพร้อมกัน
      • ทำการทดสอบ qt_example prettier
      • เปลี่ยนชื่อแมโคร C ++ 11-helper ใน Hashtable.h และ Queue.h เพื่อทำให้มีโอกาสน้อยที่จะชนกับแมโครของแพคเกจอื่น ๆ * แก้ไขข้อผิดพลาดเล็กน้อยในชั้น SSLSocketDataIO เปลี่ยนชื่อ SSLSocketDataIO :: SetKey () เป็น SetPrivateKey () o เปลี่ยนชื่อ SSLSocketDataIO :: SetCertificate () เป็น SetPublicKeyCertificate () o AbstractMessageIOGateway :: SetDataIO () เป็นเสมือนวิธีการ

      มีอะไรใหม่ ในเวอร์ชัน 5.92:

      • ปรับปรุงการสนับสนุน C + +11 เคลื่อนไหวความหมายในชั้นเรียนและ Hashtable (เปิดใช้งานเฉพาะเมื่อ -DMUSCLE_USE_CPLUSPLUS11 ถูกกำหนดไว้)
      • เพิ่มเครื่องมือในชั้น String เพื่อที่ฉันจะได้ดูว่ามีการคัดลอกย้ายและอื่น ๆ กี่ครั้งที่วัตถุสตริง (เปิดใช้งานเฉพาะเมื่อมีการระบุ --DIUSCLE_COUNT_STRING_COPY_OPERATIONS)
      • เพิ่มฟังก์ชัน PrintAndClearStringCopyCounts () ซึ่งจะพิมพ์ข้อมูลการดำเนินงานสตริงที่เก็บรวบรวมไว้ด้านบน
      • เพิ่มเวทมนตร์ SFINAE ลงใน muscleSwap () เพื่อแลกกับ SwapContents () เมื่อเป็นไปได้แทนที่จะคัดลอกไปยังออบเจกต์ชั่วคราว
      • เพิ่ม constructor ของ initializer-list และเกินพิกัดของ AddTailMulti () ไปยังชั้นเรียน Queue (ใช้ได้เฉพาะเมื่อมีการกำหนด --DMUSCLE_USE_CPLUSPLUS11)
      • เปลี่ยนชื่อ Queue และ Overload อาเรย์ของ Queue :: AddTail () เป็น AddTailMulti () เพื่อหลีกเลี่ยงความขัดแย้งกับเทมเพลต C + + + ใหม่ในการแยกวิเคราะห์การสนับสนุน
      • เปลี่ยนชื่อ Queue และ Array Overloads ของ Queue :: AddHead () เป็น AddHeadMulti () เพื่อหลีกเลี่ยงความขัดแย้งกับเทมเพลต C + + + ใหม่ในการแยกวิเคราะห์การสนับสนุน
      • แทนที่มาโคร MCRASH_IMPL ด้วยการโทรเพื่อยืนยัน (เท็จ)
      • ปรับแต่งความเข้ากันได้กับ Android ได้น้อยมาก
      • หลายโปรแกรมในโฟลเดอร์ทดสอบไม่ได้รวบรวมภายใต้ C ++ 11 คง.
      • แก้ไขข้อผิดพลาดที่อาจเกิดขึ้นหลายอย่างซึ่งตรวจพบโดยเครื่องมือวิเคราะห์แบบคงที่ของหวง

      • มีอะไรใหม่ ในเวอร์ชัน 5.91:

        • เพิ่มวิธีการสะดวกสบายของ EnsureCanPut () ในคลาส Hashtable
        • เพิ่มวิธีการสะดวกสบายของ EnsureCanAdd () ในชั้นเรียน Queue
        • เปลี่ยน DoMutexAtomicIncrement () เป็นฟังก์ชันแบบอินไลน์เพื่อทำให้การเรียกใช้งานมีประสิทธิภาพมากขึ้น
        • เปลี่ยน QMessageTransceiverThread และ QAcceptSocketsThread เพื่อเรียกใช้ QCoreApplication :: postEvent () แทนที่จะเป็น QApplication :: postEvent () เพื่ออนุญาตแอพพลิเคชันที่ไม่ใช่ GUI Qt
        • อัปเดตเอกสารคำแนะนำสำหรับผู้เริ่มต้นใช้งานเพื่อให้สอดคล้องกับการสนับสนุน UDP ที่ปรับปรุงโดย MUSCLE
        • ผสานรวมการเปลี่ยนแปลงความเข้ากันได้ของ Android ที่ Jean-FranA§ois Mullet จัดเตรียมไว้ให้แล้ว
        • การใช้ค่าสถานะการคอมไพล์ MUSCLE_USE_MUTEXES_FOR_ATOMIC_OPERATIONS จะทำให้ MUSCLE เกิดข้อผิดพลาดเมื่อเริ่มต้นระบบเนื่องจากปัญหาเกี่ยวกับการสั่งการของการดำเนินงาน การดำเนินการนี้ได้รับการแก้ไขแล้ว
        • ธงการรวบรวม MUSCLE_USE_MUTEXES_FOR_ATOMIC_OPERATIONS ถูกนำมาใช้ก่อนหน้านี้เท่านั้นหากไม่มีการติดตั้ง AtomicCounter อื่น ๆ ตอนนี้ธงมีลำดับความสำคัญสูงกว่าดังนั้นการตั้งค่าสถานะหมายความว่าจะใช้ Mutexes แม้ว่าจะมีกลไกอื่น ๆ (มีประสิทธิภาพมากกว่า)

        • มีอะไรใหม่ ในเวอร์ชัน 5.90:

          • เพิ่มเมธอด GetPacketMaximumSize () ลงในคลาส DataIO เพื่อให้รหัสเกตเวย์สามารถจัดการการสื่อสารแบบ packetized ได้อย่างชาญฉลาดมากขึ้น
          • MessageIOGateway ทำงานเป็นประโยชน์ร่วมกับ UDPSocketDataIO
          • เพิ่มฟังก์ชัน Templated ของ CreateObjectFromArchiveMessage () ให้กับ Message.h เพื่อใช้เป็นคู่ฉบับด้านการกู้คืนเพื่อ GetArchiveMessageFromPool () ฯลฯ
          • AtomicCounter :: AtomicIncrement () จะคืนค่าบูลีน (true และค่าตัวนับใหม่จะเท่ากับหนึ่งค่า)
          • ปรับเปลี่ยนคลาส HashtableIterator เพื่อให้การกำหนดค่าแบบ Hashtable แบบอ่านอย่างเดียวสามารถอ่านได้ในขณะนี้แม้ว่าจะไม่ได้ระบุค่าสถานะ HTIT_FLAG_NOREGISTER ไว้
          • เพิ่ม class muscle_thread_id ไปที่ SetupSystem.h เพื่อแสดงรหัสเธรดในรูปแบบที่ใช้งานได้อย่างถูกต้อง
          • เพิ่มคำว่า & quot; การหยุดชะงัก & quot; โปรแกรมไปยังโฟลเดอร์ทดสอบ โปรแกรมนี้ตั้งใจสร้างความสับสนให้เป็นวิธีการออกกำลังกาย / สาธิตการทดสอบ deadlockfinder
          • เพิ่มการสนับสนุนธงบรรทัดคำสั่ง -DMUSCLE_AVOID_THREAD_SAFE_HASHTABLE_ITERATORS สำหรับผู้ที่ต้องการหลีกเลี่ยงค่าใช้จ่ายด้านความปลอดภัยหัวข้อโดยอัตโนมัติและสัญญาว่าจะจัดหาอาร์กิวเมนต์ HTIT_FLAG_NOREGISTER ด้วยตนเองหากจำเป็น
          • เพิ่มแคชการค้นหา LRU ที่เป็นตัวเลือกไปยังฟังก์ชัน GetHostByName () เพื่อให้สามารถส่งกลับได้เร็วขึ้นเมื่อมีการแก้ไขชื่อโฮสต์เดิมซ้ำไปซ้ำแล้วซ้ำอีก
          • เพิ่มฟังก์ชัน SetHostNameCacheSettings () ที่เปิดใช้งานและปรับแคชการค้นหา LRU ใน GetHostByName ()
          • เพิ่มการสนับสนุนสำหรับ & quot; dnscache & quot; และ & quot; dnscachesize & quot; อาร์กิวเมนต์บรรทัดคำสั่งใน HandleStandardDaemonArgs () เพื่อให้สามารถระบุลักษณะการทำงานของแคชของแคช LRU ของบรรทัดคำสั่งได้
          • ปรับเปลี่ยนคลาส Hashtable เพื่อให้ค่าสมาชิก _iterHead, _iterTail และ _freeHead เป็น uint32 มากกว่าคำแนะนำเพื่อลดการใช้หน่วยความจำ
          • ลบเมธอด ThreadLocalStorage :: SetFreeHeldObjectsOnExit () และเพิ่มอาร์กิวเมนต์ boolean ไปยังตัวสร้างแทนเนื่องจาก pthreads ไม่อนุญาตให้คุณเปลี่ยนการตั้งค่านั้นหลังจากเรียก pthread_key_create ()
          • ย้าย GetCurrentThreadID () ลงในคลาส muscle_thread_id เป็นฟังก์ชันสมาชิกแบบคงที่และเปลี่ยนเป็น object แบบ muscle_thread_id แทน unsigned long
          • เปลี่ยนชื่อโฮสต์ดีฟอลต์สำหรับเซสชันโดยไม่มีที่อยู่ IP ที่รู้จักจาก & quot; & quot; ไปที่ & quot; _unknown_ & quot; เนื่องจากวงเล็บมุมในสตริงเดิมมีความหมายพิเศษเป็นรุ่น 5.84 และอาจรบกวนการจับคู่โหนดกับเส้นทางที่ไม่ได้ตั้งใจ
          • เมธอด CalculateChecksum () ใน Message.cpp ได้รับการแก้ไขให้มีประสิทธิภาพมากขึ้นในการตรวจจับความแตกต่างระหว่างการย้ายข้อมูล
          • ลบการสนับสนุน MUSCLE_USE_QT_FOROMATICICOPERATIONS จาก AtomicCounter.h เนื่องจากคลาส QaTomicInt ของ Qt ไม่สนับสนุนฟังก์ชันที่จำเป็นต้องใช้ค่าส่งคืนใหม่ของเมธอด AtomicIncrement ()
          • ลบ MessageIOGateway :: FlattenMessage () และ MessageIOGateway :: UnflattenMessage () เพิ่มในตำแหน่ง: MessageIOGateway :: FlattenHeaderAndMessage () และ MessageIOGateway :: UnflattenHeaderAndMessage () วิธีการใหม่เหล่านี้จัดการทั้งไบต์ส่วนหัวและเนื้อหาข้อความพร้อมกัน
          • เพิ่มไฟล์ udpproxy.vcproj ลงในโฟลเดอร์ทดสอบเพื่อช่วยในการคอมไพล์ udpproxy ใน Windows
          • ข้อความ: Flatten () จะทำซ้ำในฟิลด์ในข้อความเพียงครั้งเดียวแทนการใช้สองครั้ง
          • GetCurrentThreadID () เป็นฟังก์ชันแบบอินไลน์แล้วเนื่องจาก HashtableIterator สามารถเรียกใช้งานได้บ่อยครั้ง
          • ปรับเปลี่ยนรหัส deadlockfinder เพื่อใช้ Queues แทน Hashtables เนื่องจาก muscle_thread_id ไม่สามารถใช้เป็นคีย์ชนิด Hashtable ได้อีกต่อไป
          • แก้ไข testudp.cpp เพื่อใช้ MessageIOGateway อย่างถูกต้องสำหรับการสื่อสาร UDP
          • ปรับแต่ง ifdefs ใน FilePathInfo.cpp อีกเล็กน้อยเพื่อไม่ให้ statInfo.st_birthtimespec เข้าถึงเมื่อใช้ MacOS / X SDK ที่ไม่ได้ให้มา
          • MessageDataIOGateway ไม่พยายามจะยกเลิกการล้างข้อมูลจากบัฟเฟอร์ zlib ที่คลาดเคลื่อนจนไม่สามารถขยายตัวอีกครั้งได้
          • แก้ไขข้อผิดพลาดใน SendDataUDP () ที่อาจทำให้ SendDataUDP () ส่งข้อผิดพลาดอย่างไม่ถูกต้องเมื่อส่งไปยังที่อยู่ multicast โดยใช้โหมด non-blocking และบัฟเฟอร์ผลลัพธ์เต็ม

          • มีอะไรใหม่ ในเวอร์ชัน 5.85:

          • เพิ่ม LogTime (MUSCLE_LOG_DEBUG) เรียกใช้เส้นทางข้อผิดพลาดทั้งหมดใน MessageIOGateway :: DoInputImplementation () และ Message :: Unflatten () เพื่อให้ง่ายต่อการตรวจสอบเมื่อมีการยกเลิกการเชื่อมต่อ TCP เนื่องจากข้อมูล การทุจริต.
          • เพิ่มฟังก์ชัน PreviousOperationHadTransientFailure () ซึ่งจะส่งคืน errno ที่แท้จริงและ errno คือ EINTR หรือ ENOBUFS
          • การระบุ spamspersecond = -1 จะทำให้ hexterm ส่งข้อมูลสแปมให้เร็วที่สุดเท่าที่จะเป็นไปได้
          • การใช้งาน MUSCLE_USE_POLL ของ SocketMultiplexer.h กำลังส่ง POLLERR ไปยัง WSAPOL () แต่ WSAPOL () ไม่สนับสนุน POLLERR ดังนั้น WSAPOL () จะส่งคืนข้อผิดพลาดเมื่อเกิดเหตุการณ์นี้ขึ้น แก้ปัญหาโดยการกรอง POLLERR เมื่อคอมไพล์ภายใต้ Windows
          • แก้ไขข้อผิดพลาดที่ส่ง () กลับ ENOBUFS อาจทำให้การเชื่อมต่อซ็อกเก็ตสิ้นสุดลงแม้ว่า ENOBUFS ไม่ใช่เงื่อนไขที่ร้ายแรง
          • SocketMultiplexer.cpp จะไม่รวบรวมเมื่อกำหนด MUSCLE_USE_POLL คง.
          • วิธี ZlibCodec :: Deflate () จะไม่สามารถบีบอัดข้อมูลทั้งหมดในบัฟเฟอร์ที่มีขนาดใหญ่มาก (เช่นมากกว่า 42MB) คง.

          • มีอะไรใหม่ ในเวอร์ชัน 5.84:

            • ไวยากรณ์ช่วงตัวเลขของคลาส StringMatcher ได้รับการขยายเพื่อให้คุณสามารถระบุช่วงได้หลายช่วง ตัวอย่างเช่น & quot; & quot; จะตรงกับสตริง & quot; 19 & quot ;, & quot; 20 & quot; & quot; 21 & quot; & quot; 25 & quot; & quot; 30 & quot; & quot; 31 & quot;; &; & quot; & quot; & quot; & quot;
            • เพิ่มฟังก์ชันการแปลง Conversion GetCurrentTime64ForRunTime64 () และ GetRunTime64ForCurrenTime64 () เป็น TimeUtilityFunctions.h
            • เพิ่มเมท็อดสาธารณูปโภค GetDescendant () ลงในคลาส DataNode
            • เพิ่มตัวย้าย C + +11 และตัวย้ายการกำหนดค่าไปยังคลาส Hashtable, Queue, String, Message และ ByteBuffer สำหรับความเข้ากันได้ย้อนหลังกับคอมไพเลอร์รุ่นเก่ารหัสนี้จะได้รับการคอมไพล์ถ้ามีการระบุ -DMUSCLE_USE_CPLUSPLUS11 ในบรรทัดการคอมไพล์แล้ว
            • คลาส SharedMemory จะอยู่ในชั้นเรียนที่ไม่ใช่หน่วยความจำร่วมหากระบุ -DMUSCLE_FAKE_SHARED_MEMORY
            • เพิ่มการทดสอบ testfilepathinfo ลงในโฟลเดอร์ทดสอบ
            • อัปเดตหัวเรื่องของหัวเรื่องลิขสิทธิ์ทั้งหมดเพื่ออ่าน Meyer Sound 2000-2013
            • เพิ่มช่องว่างระหว่างโทเค็นแมโคร (เช่น UINT32_FORMAT_SPEC) และค่าสตริง (เช่น & quot; Hello & quot;) เพื่อให้คอมไพเลอร์ C ++ 11 มีความสุข
            • ByteBuffer.cpp มีข้อผิดพลาดทางไวยากรณ์ซึ่งอาจป้องกันไม่ให้คอมไพล์จากโฮสต์ขนาดใหญ่ของ endian คง.
            • MacOS / X เท่านั้น: แทนที่ฟังก์ชัน Carbon ที่เลิกใช้แล้วโดยใช้พารามิเตอร์ Mach เพื่อหลีกเลี่ยงคำเตือนการเลิกใช้งานภายใต้ 10.8.x

            • มีอะไรใหม่ ในเวอร์ชัน 5.83:

              • เพิ่มเวอร์ชันสะดวกสบายของ InflateByteBuffer () และ DeflateByteBuffer () ใช้ ByteBufferRef เป็นอาร์กิวเมนต์
              • ลบวิธีที่ล้าสมัย / ไม่ได้ใช้ออก (EnsureBufferSize () และ FreeLargeBuffer ()) จากคลาส AbstractMessageIOGateway
              • แก้ไขความผิดพลาดบางอย่างในความคิดเห็นในโฟลเดอร์ย่อย delphi
              • คลาส Hashtable จะไม่สร้างคำเตือนเมื่อคอมไพล์ภายใต้ MSVC ด้วย -DMUSCLE_AVOID_MINIMIZED_HASHTABLES ที่กำหนดไว้
              • แก้ไขข้อบกพร่องใน IPAddressAndPort :: ToString () ที่ทำให้สตริงที่อยู่ IPv4 ได้รับการจัดรูปแบบไม่ชัดเจนเมื่อ (preferIPv4Style) ถูกตั้งเป็น false

ซอฟต์แวร์ที่คล้ายกัน

Apache Xindice
Apache Xindice

2 Jun 15

ArangoDB
ArangoDB

17 Feb 15

CloverETL Engine
CloverETL Engine

11 Apr 16

MemSQL
MemSQL

20 Feb 15

ซอฟแวร์อื่น ๆ ของนักพัฒนา Jeremy Friesner

AudioMove
AudioMove

2 Jun 15

ความคิดเห็นที่ MUSCLE

ความคิดเห็นที่ไม่พบ
เพิ่มความคิดเห็น
เปิดภาพ!
ค้นหาตามหมวดหมู่