Zeromq ไบนารี ตัวเลือก


ZeroMQ มาเป็นซอร์สโค้ดที่ได้รับสิทธิการใช้งานภายใต้ใบอนุญาตโอเพนซอร์สแบบโอเพนซอร์สหน้านี้แสดงรายการดิสทริบิวชันอย่างเป็นทางการที่สร้าง, เผยแพร่และสนับสนุนโดย iMatix วิกิพีเดียชุมชนอาจจัดเตรียมแพ็คเกจอื่น ๆ Current Stable Release 4 2 1. ปัจจุบันเวอร์ชันเสถียร 4 เวอร์ชันคือ v4 2 1 จาก 2016 12 32 สิ่งที่เปลี่ยนไปตรวจสอบภาษาที่มีผลผูกพันและดูว่ามีการสนับสนุน ZeroMQ v4 x หรือไม่เราขอแนะนำให้เผยแพร่แก่ผู้พัฒนาแอ็พพลิเคชันใหม่ ๆ ด้วย ZeroMQ All 4 x releases มุ่งให้เข้ากันได้กับผลิตภัณฑ์ที่มีเสถียรภาพกลับไปที่ 2 2 0 Legacy Stable Release 4 1 6.The legacy 4 รุ่นเสถียรภาพ 1 รุ่นคือ v4 1 6 จาก 2016 11 01 สิ่งที่เปลี่ยนแปลงไปตรวจสอบภาษาที่มีผลผูกพันและดูว่ามีการสนับสนุน ZeroMQ v4 x หรือไม่เราขอแนะนำให้อัพเกรดเป็น 4 2 x ทั้งหมด 4 x release มุ่งมั่นสำหรับความเข้ากันได้กับรุ่นที่มีเสถียรภาพกลับไปที่ 2 2 0.Legacy Stable Release 4 0 8.The legacy 4 รุ่นเสถียรภาพ 0 x คือ v4 0 8 จาก 2016 06 17 มีอะไรเปลี่ยนแปลงไปตรวจสอบภาษาที่มีผลผูกพันและดูว่ารองรับหรือไม่ ZeroMQ v4 x เราแนะนำใหม่ end อัพเกรดเป็น 4 2 x All 4 x รุ่นมุ่งมั่นสำหรับความเข้ากันได้กับรุ่นที่มีเสถียรภาพกลับไปที่ 2 2 0.Legacy Stable Release 3 2 5.The มรดก 3 x มีเสถียรภาพเป็น v3 2 5 จาก 2014 10 14 สิ่งที่เปลี่ยนแปลงเราขอแนะนำ ทุกคนที่ใช้ 3 2 x หรือ 2 2 x เพื่ออัพเกรดเป็น 4 1 x กรุณาสอบถามรายชื่อ maling list zeromq-dev ถ้าคุณต้องการความช่วยเหลือในการทำแบบนี้ master development เป้าหมายของเราคือต้นแบบการพัฒนาเกือบสมบูรณ์แบบตลอดเวลาคุณจะได้รับ master พัฒนาล่าสุดได้ตลอดเวลาผ่านทาง git ถ้าคุณพัฒนาแอพพลิเคชันใหม่เราขอแนะนำให้คุณทดสอบกับ master อย่างสม่ำเสมอเพื่อสร้างจาก master บน Linux และ OS X เพื่อสร้างจากต้นแบบบน Windows โดยใช้ VS2015. รุ่นก่อน ๆ ซอฟต์แวร์อื่น ๆ หากคุณกำลังทำงานอยู่ใน CC คุณจะต้องการรับ CZMQ ซึ่งเป็น C binding ระดับสูงซึ่งจะเพิ่มชั้นเรียนที่มีประโยชน์มากมายบน ZeroMQ รวมถึง UDP และการค้นพบซุบซิบเครื่องปฏิกรณ์ตู้คอนเทนเนอร์ซ็อกเก็ตอัจฉริยะและนักแสดงสำหรับการเขียนโปรแกรมพร้อมกัน สร้างระบบ UNIX เหมือนหากคุณมีทางเลือกฟรีระบบปฏิบัติการที่สะดวกสบายที่สุดสำหรับ dev eloping กับ ZeroMQ น่าจะเป็น Ubuntu ตรวจสอบให้แน่ใจว่า libtool pkg-config autoconf และ automake ที่ติดตั้งอยู่ตรวจดูว่ามีการติดตั้ง uuid-dev package, uuid e2fsprogs RPM หรือเทียบเท่าในระบบของคุณหรือไม่ติดตั้ง source archive เรียกใช้ configure แล้วตามด้วย make เมื่อต้องการติดตั้งระบบปฏิบัติการ ZeroMQ sudo ให้ติดตั้งบน Linux ให้เรียกใช้ sudo ldconfig หลังจากติดตั้ง ZeroMQ เพื่อดูตัวเลือกการกำหนดค่าเรียกใช้ configure - help อ่าน INSTALL เพื่อดูรายละเอียดเพิ่มเติมเพื่อสร้าง Windows. You ต้อง Visual Studio 2008 หรือ later. Nppack เก็บแหล่งที่มาใน Visual C เปิด solution. Build ห้องสมุด solution. ZeroMQ จะอยู่ใน lib subdirectory. Language bindings. For รายการที่สมบูรณ์ของการผูกภาษามีลักษณะที่นี่ Sture. Pure ภาษา ZeroMQ ยังมาใน stack Java บริสุทธิ์ที่เรียกว่า JeroMQ และสแต็ค C บริสุทธิ์เรียกว่า NetMQ เหล่านี้เป็นทั้งโครงการที่เป็นทางการและได้รับการสนับสนุนโดยชุมชน ZeroMQ Zeroing ZeroMQ หน้า Wiki นี้มีเคล็ดลับในการปรับ ZeroMQ สำหรับแพลตฟอร์มของคุณคุณสามารถเพิ่มเคล็ดลับของคุณเองตามที่คุณ ค้นพบพวกเขาการออกแบบเว็บไซต์และเนื้อหาของเว็บไซต์เป็นลิขสิทธิ์ c 2014 iMatix Corporation ติดต่อเราเพื่อขอรับการสนับสนุนอย่างมืออาชีพเนื้อหาเว็บไซต์ที่ได้รับอนุญาตภายใต้ cc-by-sa 3 0 MQ มีลิขสิทธิ์ c ลิขสิทธิ์ c 2007-2014 iMatix Corporation และ Contributor MQ คือซอฟต์แวร์เสรีที่ได้รับอนุญาตภายใต้ LGPL MQ และ ZEROMQ เป็นเครื่องหมายการค้าของ iMatix Corporation ข้อกำหนดในการให้บริการ Privacy Policy. int zmqsetsockopt void ซ็อกเก็ต int optionname const void optionvalue sizet optionlen. Caution ตัวเลือกทั้งหมดยกเว้น ZMQSUBSCRIBE, ZMQUNSUBSCRIBE, ZMQLINGER, ZMQROUTERMandatory และ ZMQXPUBVERBOSE มีผลต่อซ็อกเก็ตที่ตามมาเท่านั้น ผูกเชื่อมต่อฟังก์ชัน zmqsetsockopt จะตั้งค่าตัวเลือกที่ระบุโดยอาร์กิวเมนต์ optionname ไปยังค่าที่ชี้ไปตามอาร์กิวเมนต์ optionvalue สำหรับซ็อกเก็ต MQ ที่ชี้ไปตามอาร์กิวเมนต์ซ็อกเก็ตอาร์กิวเมนต์ optionlen คือขนาดของค่าตัวเลือกในไบต์ซ็อกเก็ตต่อไปนี้ สามารถตั้งค่าได้ด้วยฟังก์ชั่น zmqsetsockopt. ZMQSNDHWM ตั้งค่าเครื่องหมายน้ำสูงสำหรับข้อความขาออก ZMQ เครื่องหมาย SNDHWM จะตั้งค่าเครื่องหมายน้ำสูงสำหรับข้อความขาออกบนซ็อกเก็ตที่ระบุเครื่องหมายว่าน้ำสูงเป็นขีด จำกัด ที่ จำกัด จำนวนข้อความที่โดดเด่นที่สุด MQ จะต้องจัดคิวไว้ในหน่วยความจำสำหรับเพียร์เดี่ยวตัวใดตัวหนึ่งที่ซ็อกเก็ตที่ระบุกำลังสื่อสารอยู่ด้วย ได้รับการเข้าถึงซ็อกเก็ตจะต้องเข้าสู่สถานะพิเศษและขึ้นอยู่กับชนิดของซ็อกเก็ต MQ จะต้องดำเนินการอย่างเหมาะสมเช่นการปิดกั้นหรือวางข้อความที่ส่งไปดูรายละเอียดซ็อกเก็ตแต่ละรายการใน zmqsocket 3 สำหรับรายละเอียดเกี่ยวกับการดำเนินการที่แน่นอนสำหรับแต่ละซ็อกเก็ต MQ ไม่รับประกันว่าซ็อกเก็ตจะยอมรับข้อความ ZMQSNDHWM ได้มากที่สุดและขีด จำกัด ที่แท้จริงอาจลดลงได้มากถึง 60-70 ขึ้นอยู่กับการไหลของข้อความบนซ็อกเก็ตประเภทของค่าที่ใช้เล่นเกม Etermax Stock ขณะนี้มีแอพพลิเคชันหลายล้านรายการทั้งแบบฟรีและแบบชำระเงินที่เจ้าของอุปกรณ์เคลื่อนที่สามารถดาวน์โหลดและติดตั้งแอปฟรี 10 อันดับแรกของปี 2015 รวมถึงบริการสตรีมมิงสื่อแพลตฟอร์มเครือข่ายสังคมและระบบสาธารณูปโภคของอุปกรณ์ Etermax Games Stock Trading Oil Online บน Forex Trading In ไนจีเรียเกม Mangas E-Books เฟิร์มแวร์ Zone TradeFields - ตัวจำลองการสต็อกสินค้าของตลาดหุ้น Etermax ดาวน์โหลดเดี๋ยวนี้อัปเดตเกม TradeFields - เครื่องมือจำลองตลาดสต็อกในขณะที่แอปพลิเคชันส่วนใหญ่ไม่ประสบความสำเร็จและจะไม่ทำให้บรรดาเศรษฐีผู้สร้างของพวกเขาข้ามคืนบางคนก็น่าสนใจ ปพลิเคชันรายได้สูงสุดที่ผลิตสอง บริษัท ครอง Supercell และคิง KINGApple คาดการณ์ว่าร้านค้า app จะนำมาในกว่า 10 พันล้านรายได้ในปี 2015 ดังนั้นจึงเป็นมูลค่าการดูปพลิเคชันที่ใหญ่ที่สุดจนถึงปีนี้สำหรับข้อมูลเพิ่มเติม, ดูมีสามประเภททั่วไปของแอปฟรีที่มีการจัดอันดับแอปที่เป็นที่นิยมซึ่งจะไม่เสียค่าใช้จ่ายใด ๆ ในการดาวน์โหลด แต่อาจมีการซื้อในแอปหรือ premium vers ion ซึ่งมีแอปที่ได้รับการชำระเงินยอดนิยมมากขึ้นหรือดีกว่าซึ่งจะทำให้ผู้ใช้เสียค่าใช้จ่ายได้ตั้งแต่ 0 ถึง 99 ดอลลาร์เพื่อดาวน์โหลดและแอปที่สร้างรายได้สูงสุดซึ่งบัญชีสำหรับแหล่งที่มาของรายได้ทั้งหมดที่ได้รับไปยังแอพโดยเฉพาะ Etermax Games Stock Trading De Investigacin Del Mercado De การซื้อขายของเวเนซุเอลาการออมธุรกิจตลาดธุรกิจขนาดเล็กเศรษฐกิจสิงคโปร์เทคโนโลยีพร็อพเพอร์ตี้รูปภาพวิดีโอแอพพลิเคชันสต็อกสินค้าในตลาดหลักทรัพย์ที่ดีที่สุด Apps Stock Guru เป็นแอพพลิเคชันการวิเคราะห์สต็อกที่มีประสิทธิภาพสำหรับ iPad แต่ทำในช่วง 5 นาทีระหว่างวันเทรด Games Mangas E - Books Firmware Zone TradeFields - ตัวจำลองตลาดสต๊อก Etermax ดาวน์โหลดเดี๋ยวนี้อัปเดตเกม TradeFields - ตัวจำลองตลาดสต็อกสินค้าแอพพลิเคชันชั้นนำที่ผู้ใช้จ่ายเงินอย่างสม่ำเสมอคือเกมฟอร์ซมาร์จิ้นความต้องการ Thinkorswim Tutorial. Delta Neutral Fx Options Strategies. Etermax Games Stock Trading Goldfinger How Do โบรกเกอร์ตัวเลือกไบนารีการค้าขายเพื่อสร้างรายได้การออมธุรกิจธุรกิจขนาดเล็กเศรษฐกิจสิงคโปร์เทคโนโลยีพร็อพเพอร์ตี้ บล็อกรูปภาพวิดีโอตัวเลือกไบนารีนักเล่น Forex บนเกม Cboe Mangas E-Books ซอฟต์แวร์เฟิร์มแวร์เขต TradeFields - Stock Simulator Simulator Etermax ดาวน์โหลดเดี๋ยวนี้อัปเดตเกม TradeFields - จำลองตลาดสต็อกนอกจากนี้ยังมีมูลค่า noting ว่าส่วนใหญ่ของปพลิเคชันด้านบนเป็นของขนาดใหญ่ tech และไม่ใช่ผลิตภัณฑ์ของนักพัฒนาซอฟต์แวร์รายอื่น ๆ ดูเพิ่มเติมมีสามประเภททั่วไปของแอปฟรีที่มีการจัดอันดับแอปซึ่งเป็นที่นิยมซึ่งจะไม่เสียค่าใช้จ่ายใด ๆ ในการดาวน์โหลด แต่อาจมีการซื้อในแอปหรือเวอร์ชันพรีเมียมที่มีมากกว่า และดีกว่าแอปปพลิเคชันที่เป็นที่นิยมจ่ายซึ่งผู้ใช้ค่าใช้จ่ายที่ใดก็ได้ตั้งแต่ 0 99 ถึงหลายสิบดอลลาร์เพื่อดาวน์โหลดและปพลิเคชันที่สร้างรายได้ด้านบนซึ่งบัญชีสำหรับแหล่งที่มาของรายได้ทั้งหมดที่ได้รับไปยัง app โดยเฉพาะ Etermax Games Stock Trading 401k ตัวเลือกการลงทุนแนะนำ เป็นที่น่าสนใจที่จะทราบว่าปพลิเคชันบนยอดเงินและยอดเบ็ดเสร็จทำขึ้นโดยสิ้นเชิงเกม Etermax เกม Stock Trading Time Inc NYSETIME ประกาศในวันนี้ว่าได้ป้อน เข้าร่วมเป็นพันธมิตรกับ Etermax ผู้พัฒนาเกมมือถือที่กำลังเปิดตัวผลสืบเนื่องไป Trivia Crack แอปพลิเคชันบนมือถือเป็นผู้ผลิตรายใหญ่สำหรับแพลตฟอร์มที่นำเสนอบริการดังกล่าวเช่น Apple i Tunes AAPL และ Google Play GOOG ตลอดจนสำหรับผู้ที่สนใจ นักพัฒนาที่โชคดีที่มีปพลิเคชันกลายเป็นความสำเร็จอย่างมาก Etermax เกมสต็อกเทรดดิ้งวิธีการค้าในเรา Stock Market Online วิธีการใช้เงินในสต็อก Market. zmqsetsockopt - ชุด MQ ซ็อกเก็ต options. int zmqsetsockopt โมฆะซ็อกเก็ต int optionname const void optionvalue sizet optionlen. Caution All options ยกเว้น ZMQSUBSCRIBE, ZMQUNSUBSCRIBE, ZMQLINGER, ZMQROUTERHANDOVER, ZMQROUTERMANDY, ZMQPROBEROUTER, ZMQXPUBVERBOSE, ZMQREQCORRELATE และ ZMQREQRELAXER มีผลต่อการเชื่อมต่อซ็อกเก็ตต่อไปเท่านั้นโดยเฉพาะตัวเลือกการรักษาความปลอดภัยจะมีผลต่อการผูกเชื่อมต่อในภายหลังและสามารถเปลี่ยนแปลงได้ที่ เวลาใด ๆ ที่จะมีผลต่อการผูกและหรือเชื่อมต่อฟังก์ชัน zmqsetsockopt จะตั้งค่าตัวเลือกที่ระบุโดยตัวเลือกชื่อ ment ค่าชี้ไปตามอาร์กิวเมนต์ optionvalue สำหรับซ็อกเก็ต MQ ชี้ไปตามอาร์กิวเมนต์ซ็อกเก็ตอาร์กิวเมนต์ optionlen คือขนาดของค่าตัวเลือกในไบต์ตัวเลือกซ็อกเก็ตต่อไปนี้สามารถตั้งค่าด้วยฟังก์ชัน zmqsetsockopt ZMQAFFINITY กำหนดความสัมพันธ์ของเธรด IO ตัวเลือก ZMQAFFINITY จะกำหนดความสัมพันธ์ของเธรด IO สำหรับการเชื่อมต่อที่สร้างขึ้นใหม่บนซ็อกเก็ตที่ระบุความละเอียดจะกำหนดเธรดใดจากชุดเธรดเธรด MQ IO ที่เชื่อมโยงกับบริบทของซ็อกเก็ตจะจัดการกับการเชื่อมต่อที่สร้างขึ้นใหม่ค่าศูนย์ระบุไม่มีความสัมพันธ์ซึ่งหมายความว่า งานจะถูกแจกจ่ายอย่างเป็นธรรมระหว่างหัวข้อ MQ IO ทั้งหมดในชุดเธรดสำหรับค่าที่ไม่ใช่ศูนย์บิตต่ำสุดจะตรงกับเธรดที่ 1 บิตที่สองต่ำสุดถึงเธรดที่ 2 และอื่น ๆ ตัวอย่างเช่นค่า 3 ระบุว่าการเชื่อมต่อในภายหลังบนซ็อกเก็ต จะต้องได้รับการจัดการโดย IO เธรดที่ 1 และ 2 ดูรายละเอียดเกี่ยวกับการจัดสรรจำนวนเธรด IO สำหรับบริบทที่เฉพาะเจาะจง roMQ 3 ตัวเลือกซ็อกเก็ต Identity และ SendMore. Last ครั้งที่เรามองไปที่ซ็อกเก็ตที่แตกต่างกันประเภทภายใน ZeroMQ และฉันยังบอกคุณเทียบเท่าของพวกเขาใน NetMQ ซึ่งเป็นสิ่งที่ฉันใช้สำหรับการโพสต์เหล่านี้เวลานี้เราจะมองไปที่ 3 พื้นที่เล็ก ๆ ของ ZeroMQ, ซึ่งไม่สำคัญน้อยมากพื้นที่และไม่ควรมองข้ามพื้นที่เหล่านี้เป็นตัวเลือกซ็อกเก็ต Identity และ SendMore. Where เป็นโค้ดรหัสสำหรับบทความเหล่านี้ทั้งหมดเป็นเจ้าภาพในโซลูชันขนาดใหญ่หนึ่งใน github. Socket ตัวเลือกขึ้นอยู่กับ ชนิดของซ็อกเก็ตที่คุณใช้อยู่หรือโทโพโลยีที่คุณกำลังพยายามสร้างคุณอาจพบว่าคุณจำเป็นต้องตั้งค่าตัวเลือก ZeroMQ ใน NetMQ ซึ่งทำได้โดยใช้คุณสมบัตินี่เป็นรายการคุณสมบัติที่คุณสามารถตั้งค่าได้บน xxxxSocket มันยากที่จะบอกว่าที่ค่าเหล่านี้คุณอาจต้องตั้งตามที่ชัดขึ้นอยู่กับสิ่งที่คุณพยายามบรรลุทั้งหมดที่ฉันสามารถทำได้คือรายการตัวเลือกและทำให้คุณตระหนักถึงพวกเขาดังนั้นพวกเขาจึงเป็น ดูว่าตัวเลือกเหล่านี้มีความหมายตรงไหน คุณจำเป็นต้องอ้างอิงถึงเอกสาร ZeroMQ ที่เกิดขึ้นจริงนั่นคือคำแนะนำหนึ่งในสิ่งที่ยิ่งใหญ่อย่างน้อยในความเห็นของฉันเมื่อทำงานร่วมกับ ZeroMQ ก็คือเรายังสามารถติดตั้งการจัดเตรียมคำร้องขอมาตรฐานเช่นเดียวกับที่เรามีใน โพสต์แรก hello โลกตัวอย่าง แต่เราอาจเลือกสลับไปมีเซิร์ฟเวอร์ asynchronous นี้ทำได้อย่างง่ายดายโดยใช้ RouterSocket สำหรับเซิร์ฟเวอร์ไคลเอ็นต์อยู่เป็น RequestSocket s. So นี้ตอนนี้การจัดเรียงที่น่าสนใจเรามีลูกค้าแบบซิงโครนัสขอบคุณ มาตรฐาน RequestSocket ชนิดเซิร์ฟเวอร์ไม่ตรงกันด้วยซ็อกเก็ตใหม่ที่เรียกว่า RouterSocket. The RouterSocket เป็นที่ชื่นชอบส่วนตัวของฉันเพราะมันเป็นเรื่องง่ายมากที่จะใช้เป็นจำนวนมากซ็อกเก็ต ZeroMQ เมื่อคุณรู้ว่าสิ่งที่พวกเขาทำ แต่ก็มีความสามารถ ของการสร้างเซิร์ฟเวอร์ที่สามารถต่อเนื่องพูดคุยกับ 1000nds ของลูกค้าทั้งหมด asynchronously มีการเปลี่ยนแปลงน้อยมากในรหัสที่เราเห็นในส่วนที่ 1. เมื่อคุณทำงานกับ RequestSocket s พวกเขาทำอะไรฉลาดสำหรับคุณ y เสมอให้ข้อความที่มีเฟรมต่อไปนี้เฟรมที่อยู่ 0 เฟรม 1 เฟรมว่างเฟรม 2 payload ข้อความแม้ว่าทั้งหมดที่เราทำคือการส่งลักษณะ payload ที่ตัวอย่าง Hello World ใน part1.Likewise เมื่อคุณทำงานกับ ResponseSocket s พวกเขายังทำบางส่วนของการยกหนักสำหรับเราที่พวกเขามักจะให้ข้อความที่มีเฟรมต่อไปนี้เฟรม 0 ที่อยู่กลับเฟรม 1 กรอบที่ว่างเปล่าเฟรม 2 payload ข้อความแม้ว่าทั้งหมดที่เราทำก็ส่ง payload ดูตัวอย่าง Hello World ใน part1 ด้วยความเข้าใจว่าซ็อกเก็ตตอบสนองคำขอแบบซิงโครนัสมาตรฐานเป็นอย่างไรตอนนี้ค่อนข้างง่ายที่จะสร้างเซิร์ฟเวอร์ asynchronous อย่างเต็มที่โดยใช้ RouterSocket ที่รู้วิธีจัดส่งข้อความกลับไปยังไคลเอ็นต์ที่ถูกต้องทั้งหมดที่เราต้องทำ เป็นเลียนแบบวิธีการทำงานของ ResponseSocket มาตรฐานซึ่งเราสร้างเฟรมของข้อความขึ้นมาเองซึ่งเราจะต้องการสร้างเฟรมต่อไปนี้จาก RouterSocket เพื่อจำลองลักษณะการทำงานของไฟล์ ResponseSocket. Fram มาตรฐาน e 0 กลับ address. Frame 1 empty frame. Frame 2 payload. I ข้อความคิดว่าวิธีที่ดีที่สุดที่จะเข้าใจนี้เป็นตัวอย่างตัวอย่างเช่นงานนี้มี 4 ลูกค้าเหล่านี้เป็นมาตรฐานซิงโคร RequestSocket s. There เป็น เซิร์ฟเวอร์ asynchronous ซึ่งใช้ RouterSocket ถ้าไคลเอ็นต์ส่งข้อความที่มีคำนำหน้า B จะได้รับข้อความพิเศษจากเซิร์ฟเวอร์ไคลเอ็นต์อื่น ๆ ทั้งหมดจะได้รับข้อความตอบกลับมาตรฐานโดยไม่ต้องกังวลใจต่อไปนี่คือโค้ดฉบับเต็มสำหรับ example. using นี้ ระบบโดยใช้การใช้โดยใช้การใช้ NetMQ using. namespace ZeroMqIdentity public class โปรแกรม IDisposable Private List ลูกค้า RequestSocket รายการใหม่ RequestSocket. public void รันโดยใช้ NetMQContext ctx NetMQContext โดยใช้เซิร์ฟเวอร์ var tcp 127 0 0 1 5556.CreateClient ctx, CreateClient ctx, B CreateClient ctx , C CreateClient ctx, ไคลเอ็นต์ D. var คอนโซลคอนโซลไคลเอ็นต์ที่เข้ามาข้อความคอนโซลสำหรับ int i 0 ii คอนโซลไคลเอ็นต์ i. var clientAddress clientMessage 0 var clientOriginalMessage สตริงใหม่ สนับสนุนสตริงจากเซิร์ฟเวอร์ clientOriginalMessage B เป็นพิเศษถ้าสตริงการตอบกลับ B ข้อความพิเศษสำหรับ B จาก server. var messageToClient new NetMQMessage. private static void สตริงหลัก args โปรแกรม p new Program. private void CreateClient NetMQContext ctx สตริง prefix ไคลเอ็นต์ var tcp 127 0 0 1 5556 สตริง สวัสดีคำนำหน้า อ่านข้อความไคลเอ็นต์ var echoedServerMessage Console r คำนำหน้า nClient คือคำนำหน้าข้อความเซิร์ฟเวอร์ echoedServerMessage. I คิดอย่างเต็มรูปแบบขอบคุณตัวอย่างนี้เราต้องตรวจสอบผลลัพธ์ซึ่งควรเป็นอย่างนี้อาจจะไม่ตรงนี้เป็น RouterSocket อย่างเต็มที่ async ดังนั้นมันอาจจัดการกับ RequestSocket s ในลำดับที่แตกต่างกันสำหรับ you. Client Prefix คือ AHello เซิร์ฟเวอร์ข้อความกลับมาจากเซิร์ฟเวอร์ที่อยู่อีเมลไคลเอ็นต์กรอบ 0 เฟรม 1 เฟรม 2 คำนำหน้า BHello. Client คือ D เซิร์ฟเวอร์ข้อความ DHello กลับจากเซิร์ฟเวอร์ เข้าสู่ระบบลูกค้ากรอบ 0 B Frame 1 Frame 2 CHello. Client Prefix คือ B, Server Message ข้อความพิเศษสำหรับ B back จาก ser ver. Client Prefix คือ C, Server Message CHello กลับมาจาก server. ZeroMQ ทำงานโดยใช้เฟรมข้อความโดยใช้ ZeroMQ คุณสามารถ เพื่อสร้างข้อความแบบหลายส่วนที่คุณอาจใช้ด้วยเหตุผลหลายประการเช่นรวมถึงข้อมูลที่อยู่ที่เราเพิ่งเห็นตัวอย่างข้างต้นจริงการออกแบบโปรโตคอลสำหรับจุดสิ้นสุดของคุณ ข้อมูล ized เช่นกรอบข้อความที่ 1 อาจเป็นประเภทของรายการและกรอบข้อความถัดไปอาจเป็นข้อมูลที่เป็นปัจจุบันตามลำดับเมื่อคุณทำงานกับข้อความแบบหลายส่วนคุณต้องส่งรับส่วนต่างๆของข้อความที่คุณต้องการใช้งาน ฉันคิดว่าวิธีที่ดีที่สุดในการลองทำความเข้าใจข้อความแบบหลายส่วนอาจจะเป็นไปได้ผ่านการทดสอบขนาดเล็กที่ฉันเคยติดตั้งไว้ในการสาธิตทั้งหมดซึ่งสร้างขึ้นจากการสาธิตการตอบสนองคำขอ Hello World แบบเดิมเราใช้ NUnit เพื่อทำ Asserts บนข้อมูลระหว่าง เซิร์ฟเวอร์ลูกค้าต่อไปนี้เป็นกรณีทดสอบขนาดเล็กที่จุดต่อไปนี้ควรจะสังเกตเราสร้างส่วนข้อความที่ 1 และใช้วิธีการในการส่งข้อความที่ 1 เราสร้างส่วนที่ 2 และขั้นสุดท้ายโดยใช้วิธีการ Server สามารถรับส่วนของข้อความที่ 1 และกำหนดมูลค่าเพื่อกำหนดว่ามีส่วนเพิ่มเติมซึ่งทำโดยใช้การโอเวอร์โหลดของที่ช่วยให้เราได้รับค่าออกสำหรับ more. We อาจใช้จริง NetMqMessage และผนวก ไปซึ่งเราสามารถแล้ว nd ใช้ที่ซ็อกเก็ตรับจะใช้และสามารถตรวจสอบเฟรม NetMqMessage จริงได้ที่นี่คือระบบ Code. using โดยใช้ NetMQ using. namespace SendMore TestFixture public class SendMoreTests ทดสอบ void SendMoreTest สาธารณะโดยใช้ NetMQContext ctx NetMQContext โดยใช้เซิร์ฟเวอร์ var tcp 127 0 0 1 5556.using var client tcp 127 0 0 1 5556 ลูกค้าส่งข้อความ A สวัสดี เซิร์ฟเวอร์ได้รับส่วนที่ 1 เพิ่มเติมสตริง m ออกเพิ่มเติม Assert A m Assert เซิร์ฟเวอร์ได้รับสตริงที่ 2 ส่วนที่สองออกเพิ่มเติม Assert Hello m2 Assert server ส่งข้อความครั้งนี้ใช้ NetMqMessage ซึ่งจะถูกส่งเป็นเฟรมถ้าลูกค้าเรียก ReceieveMessage var m3 new NetMQMessage จาก Server client รับ var m4 Assert Assert จาก Assert Server นี่เป็นประเด็นสำคัญสองข้อจาก Zero Guide เมื่อทำงานกับ SendMore และข้อความหลายส่วนพูดถึงการใช้งาน CM ZeroMQ C ไม่ใช่รุ่น NetMQ แต่ประเด็นก็เป็นได้ เป็นสิ่งที่ถูกต้องเมื่อใช้ NetMQ บางสิ่งที่ต้องรู้เกี่ยวกับข้อความแบบหลายส่วนเมื่อคุณส่งข้อความแบบหลายส่วนส่วนแรกและส่วนต่อไปนี้ทั้งหมดจะถูกส่งจริงในสายเมื่อคุณส่งส่วนสุดท้ายหากคุณกำลังใช้ zmqpoll เมื่อได้รับ ส่วนแรกของข้อความทั้งหมดที่เหลือได้มาถึงคุณจะได้รับทุกส่วนของข้อความหรือไม่มีเลยส่วนหนึ่งของข้อความเป็นรายการ zmqmsg แยกคุณจะได้รับทุกส่วนของข้อความหรือไม่ คุณตรวจสอบคุณสมบัติเพิ่มเติมเมื่อส่ง MQ คิวกรอบข้อความในหน่วยความจำจนกว่าจะได้รับล่าสุดแล้วส่งพวกเขาทั้งหมดไม่มีทางที่จะยกเลิกข้อความที่ส่งบางส่วนไม่ได้ยกเว้นโดยการปิด socket. That s ทั้งหมดที่ฉันต้องการจะพูดคุย เกี่ยวกับในการโพสต์ดังนั้นจนกว่า ในครั้งต่อไปแล้ว

Comments