Monday 15 August 2011

sockets - How to download file from local server in Python -


परिदृश्य है:

  1. ग्राहक एक फ़ाइल नाम दर्ज करेगा जैसे xyz
  2. सर्वर उन सभी फाइलों को दिखाएगा जिनके पास अलग-अलग फ़ोल्डर हैं।

ग्राहक 1 या 2 या 3 का चयन करेगा (यदि वहां)। और फ़ाइल डाउनलोड की जाएगी।

मैंने भाग को खोजा है मुझे फ़ाइल डाउनलोड करने और किसी अन्य निर्देशिका में सहेजने में मदद चाहिए।

मेरा कोड अब तक फ़ाइल खोज रहा है

  आयात सॉकेट tcp_ip = "127.0.0.1" tcp_port = 1024 बफर_सैज = 200 फ़ाइलनाम = कच्चे_इनपुट ("फाइल नाम दर्ज करें \ n") s = socket.socket (socket.AF_INET, socket.SOCK_STREAM) ) S.connect ((tcp_ip, tcp_port)) डेटा = s.recv (बफर_आकार) s.close ()  

सर्वर कोड: (यह कोड अब एक फ़ाइल के लिए है) आवश्यक मदद है कि उस फाइल को डाउनलोड और सहेजना है जिसे सर्वर पर पाया जाता है।

  आयात सॉकेट आयात ओएस tcp_ip = '127.0.0.1' tcp_port = 1024 buffer_size = 100 s = Socket.socket (socket.AF_INET, socket.SOCK_STREAM) s.bind ((tcp_ip, tcp_port)) s.listen (1) conn, addr = s.accept () प्रिंट 'कनेक्शन पता:', 1 के दौरान addr: डेटा = Conn.recv (बफ़र_आकार) डेटा नहीं है तो: तोड़ो अन्य: प्रिंट "प्राप्त सर्वर साइड डेटा:", डेटा conn.send (डेटा) conn.close ()  

< Div class = "post-text" itemprop = "text">

निम्न उदाहरण है जो दिखाता है कि एक सर्वर से एक फाइल को टीसीपी से कैसे डाउनलोड किया जा सकता है।

क्लाइंट कोड:

 <कोड> मैं Mport सॉकेट आयात ओएस HOST = 'localhost' PORT = 1024 downloadDir = "/ tmp" filename = raw_input ('अपना फ़ाइल नाम दर्ज करें:') socket1 = socket.socket (socket.AF_INET, socket.SOCK_STREAM) socket1.connect ((HOST, PORT)) socket1.send (फ़ाइल नाम) ओपन के साथ (ओएस.path.join (downloadDir, filename), 'wb') file_to_write के रूप में: जबकि सही: डेटा = socket1.recv (1024) अगर डेटा नहीं: तोड़ file_to_write.write ( डेटा) file_to_write.close () socket1.close ()  

सर्वर कोड:

  आयात सॉकेट HOST = 'localhost' PORT = 1024 सॉकेट = सॉकेट सॉकेट (सॉकेट.एएफएएनएएनटी, सॉकेट। एसओसीईआरईएमआरएएम) सॉकेट.बींड ((होस्ट, पोर्ट)) सॉकेट.लिटेन (1) जबकि (1): कॉन, एडर = socket.accept () reqFile = conn.recv (1024) ओपन के साथ (ReqFile, 'rb') file_to_send के रूप में: file_to_send में डेटा के लिए: conn.sendall (डेटा) conn.close () socket.close ()  

नोट: सर्वर कोड मजबूत नहीं है और दुर्घटना होगा जब फ़ाइल मौजूद नहीं है आपको अपनी आवश्यकताओं के अनुसार उदाहरण ऊपर संशोधित करना चाहिए।


No comments:

Post a Comment