और यदि हां, तो किस स्थितियों में?कभी भी यूडीपी सॉकेट को लिखना ब्लॉक कर सकता है?
[ENETDOWN] स्थानीय नेटवर्क का इस्तेमाल किया इंटरफ़ेस तक पहुँचने के लिए: उदाहरण के लिए अपने नेटवर्क इंटरफेस नीचे चला जाता है, तो
class StatsdClient(AbstractStatsdClient):
def __init__(self, host, port):
super(StatsdClient, self).__init__()
self.addr = (host, port)
self.server_hostname = socket.gethostname()
self.udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
def incr(self, stat, amount=1):
data = {"%s|c" % stat: amount}
self._send(data)
def _send(self, data):
for stat, value in data.iteritems():
self.udp_sock.sendto("servers.%s.%s:%s" % (self.server_hostname, stat, value), self.addr)
मेरा मानना है कि यह डिफ़ॉल्ट रूप से अवरुद्ध है और आपको इसे 'self.udp_sock.setblocking (0)' का उपयोग नॉनब्लॉकिंग पर सेट करने के लिए करना है, इस मामले में यह अपवाद उठाएगा यदि यह तुरंत डेटा नहीं भेज सकता है। – imreal