भेजा जा रहा है और फ़ाइलें
भेजने और एक फ़ाइल प्राप्त प्राप्त मूल रूप से कोड के दो सरल टुकड़े करने के लिए टूट जाती है।
प्राप्त कोड:
ServerSocket serverSoc = new ServerSocket(LISTENING_PORT);
Socket connection = serverSoc.accept();
// code to read from connection.getInputStream();
भेजा जा रहा है कोड:
File fileToSend;
InputStream fileStream = new BufferedInputStream(fileToSend);
Socket connection = new Socket(CONNECTION_ADDRESS, LISTENING_PORT);
OutputStream out = connection.getOutputStream();
// my method to move data from the file inputstream to the output stream of the socket
copyStream(fileStream, out);
कोड का टुकड़ा भेजने कंप्यूटर कोड भेज रहा है, जब वे एक फ़ाइल भेजना चाहते हैं पर दौड़ा दिया जाएगा।
प्राप्त करने वाले कोड को लूप के अंदर रखा जाना चाहिए, ताकि जब भी कोई सर्वर से कनेक्ट करना चाहता है, सर्वर अनुरोध को संभाल सकता है और फिर serverSoc.accept() पर प्रतीक्षा करने के लिए वापस जा सकता है।
दोनों कंप्यूटरों के बीच फ़ाइलों को भेजने की अनुमति देने के लिए, प्रत्येक कंप्यूटर को आने वाली फ़ाइलों को सुनने के लिए सर्वर (कोड प्राप्त करना) चलाने की आवश्यकता होगी, और जब वे फ़ाइल भेजना चाहते हैं तो उन्हें दोनों को कोड भेजने की आवश्यकता होगी।
प्रगति बार
JProgressBar
स्विंग में काफी आसान उपयोग करने के लिए है।हालांकि, इसे ठीक से काम करने और फ़ाइल स्थानांतरण की वर्तमान प्रगति दिखाने के लिए थोड़ा और मुश्किल है।
किसी प्रपत्र पर दिखाने के लिए प्रगति पट्टी प्राप्त करने के लिए केवल इसे JFrame
पर छोड़ना और शायद setIndeterminate(false)
पर सेट करना शामिल है, इसलिए टोपी यह दिखाती है कि आपका प्रोग्राम काम कर रहा है।
एक प्रगति पट्टी को सही ढंग से लागू करने के लिए आपको SwingWorker
का अपना कार्यान्वयन बनाना होगा। जावा ट्यूटोरियल का उनके lesson in concurrency में इसका एक अच्छा उदाहरण है।
हालांकि यह अपने आप पर एक काफी मुश्किल मुद्दा है। अगर आपको इसके साथ और मदद की ज़रूरत है तो मैं इसे अपने स्वयं के प्रश्न में पूछने की सलाह दूंगा।
http://www.home.unix-ag.org/simon/woof.html
के माध्यम से कुशल डेटा स्थानांतरण की व्याख्या करता है क्या आप फ़ाइल को धक्का दे रहे हैं या खींच रहे हैं? अपलोड या डाउनलोड कर रहा है? –