मैं recvmmsg()
का उपयोग करके सी का उपयोग करके एक सरल अनुप्रयोग बनाता हूं, और पांचवां पैरामीटर type struct timespec
का समय समाप्ति है। मैंने टाइमआउट को 5 सेकंड तक सेट किया है, लेकिन यह काम नहीं कर रहा है, यह अनंतता को अवरुद्ध कर देता है।recvmmsg() में टाइमआउट कैसे सेट करें?
कोड के रूप में है निम्नलिखित:
struct timespec timeout;
timeout.tv_sec = 5;
timeout.tv_nsec = 0;
result = recvmmsg(fd, datagrams, BATCH_SIZE, 0, &timeout);
यहां संभावित बग का एक सुझाव दिया गया है जो प्रासंगिक हो सकता है: http://lists.openwall.net/netdev/2012/12/23/30 – Vicky
@ विकी: यह सही है - मेरे लिंक में इसी तरह जवाब। हालांकि यह स्पष्ट नहीं है कि कोई भी व्यवहार को बदलने जा रहा है - अधिक संभावना है कि इसे एक दस्तावेज बग माना जाएगा, मैन पेज अपडेट किया जाएगा, और निकट-बेकार टाइमआउट पैरामीटर का उपयोग ज्यादातर अनुप्रयोगों द्वारा नहीं किया जाएगा। –
चयन का उपयोग कर उपरोक्त लिंक में एक और समाधान है: http://stackoverflow.com/questions/12713438/how-to-add-delay-to-sento-and-recvfrom-in-udp-client-server-in- सी – MOHAMED