इस सवाल का पहले से ही एक उत्तर है: < / P>
- 2 जवाब
मेरे पास निम्न कोड है सॉकेट्स के माध्यम से फ़ाइल स्थानांतरण मैं सॉकेट सॉकेट = नया सॉकेट ("लोकलहोस्ट", पोर्ट); // मशीन का नाम, पोर्ट नंबर फ़ाइल फ़ाइल = नया फ़ाइल (फ़ाइलनाम);
// लंबे लम्बाई फ़ाइल का आकार प्राप्त करें; file.length (); यदि (लंबाई & gt; पूर्णांक.एमएक्स_एवीएनए) {System.out.println ("फाइल बहुत बड़ी है।"); } बाइट [] बाइट्स = नया बाइट [(इंट) लंबाई]; FileInputStream fis = नया FileInputStream (फ़ाइल); BufferedInputStream bis = नया BufferedInputStream (fis); BufferedOutputStream आउट = नया BufferedOutputStream (socket.getOutputStream ()); पूर्णांक संख्या; जबकि ((count = bis.read (बाइट्स)) gt; 0) {out.write (बाइट्स, 0, गिनती); } Out.flush (); out.close (); fis.close (); bis.close (); socket.close ();
आप अपने सॉकेट के लिए अपने प्रोटोकॉल का आविष्कार कर सकते हैं। यदि आपको सभी की जरूरत है एक फ़ाइल नाम और डेटा है, तो DataOutputStream.writeUTF सबसे आसान है:
BufferedOutputStream आउट = नया BufferedOutputStream (socket.getOutputStream ()); प्रयास करें (डेटाओटपुटस्ट्रीम डी = नया डेटाओटपुटस्ट्रीम (बाहर)) {d.writeUTF (fileName); Files.copy (file.toPath (), डी); }
सहकर्मी को एक ही प्रोटोकॉल का उपयोग करना चाहिए, निश्चित रूप से:
BufferedInputStream में = नया BufferedInputStream (socket.getInputStream ()); कोशिश (DataInputStream d = नया DataInputStream (में)) {स्ट्रिंग फाइलनाम = डी.्रेडूट एफ (); Files.copy (डी, पथ .get (फ़ाइलनाम)); }
No comments:
Post a Comment