मैं क्लाइंट से सर्वर पर फ़ाइल भेजने के लिए पायथन कोड लिखना चाहता हूं। सर्वर को क्लाइंट से भेजी गई फ़ाइल को सहेजने की आवश्यकता है। लेकिन मेरे कोड में कुछ बग हैं जिन्हें मैं ठीक नहीं कर सकता।XMLRPC का उपयोग कर क्लाइंट से सर्वर पर फ़ाइल भेजें?
# server.py
from SimpleXMLRPCServer import SimpleXMLRPCServer
import os
server = SimpleXMLRPCServer(('localhost', 9000))
def save_data(data):
handle = open("x123.dat", "wb")
handle.write(data)
handle.close()
server.register_function(save_data, 'save_data')
server.serve_forever()
और ग्राहक कोड: नीचे अपने सर्वर कोड है
Traceback (most recent call last):
File "client.py", line 6, in <module> proxy.save_data(handle.read())
File "c:\python27\lib\xmlrpclib.py", line 1224, in __call__
return self.__send(self.__name, args)
File "c:\python27\lib\xmlrpclib.py", line 1575, in __request
verbose=self.__verbose
File "c:\python27\lib\xmlrpclib.py", line 1264, in request
return self.single_request(host, handler, request_body, verbose)
File "c:\python27\lib\xmlrpclib.py", line 1297, in single_request
return self.parse_response(response)
File "c:\python27\lib\xmlrpclib.py", line 1473, in parse_response
return u.close()
File "c:\python27\lib\xmlrpclib.py", line 793, in close
raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 1: "<class 'xml.parsers.expat.ExpatError'>:not well-formed (invalid token): line 7, column 1">
:
# client.py
import sys, xmlrpclib
proxy = xmlrpclib.Server('http://localhost:9000')
handle = open(sys.argv[1], "rb")
proxy.save_data(handle.read())
handle.close()
लेकिन तब मैं अपने कोड चलाने के लिए, ग्राहक निम्न त्रुटि (यह विंडोज पर है) रिटर्न
मैं कुछ सवाल हैं:
उपरोक्त बग को कैसे ठीक करें?
मेरे कोड को कभी-कभी कुछ बड़ी फ़ाइलों को स्थानांतरित करने की आवश्यकता होती है। चूंकि मेरी विधि बहुत सरल है, मुझे संदेह है कि यह बड़े डेटा को स्थानांतरित करने के लिए सक्षम है। क्या कोई बड़ी फाइलों को स्थानांतरित करने के लिए बेहतर तरीका सुझा सकता है?