का उपयोग कर छवि भेजें मैं पाइथन में सॉकेट प्रोग्रामिंग का उपयोग करके एक छवि फ़ाइल भेजने की कोशिश कर रहा हूं। मैं एक पाठ फ़ाइल भेजने में सक्षम हूं। लेकिन मैं इसे खोलकर और फ़ाइल फ़ाइल की सामग्री को एक स्ट्रिंग में पढ़कर और फिर स्ट्रिंग भेजकर और क्लाइंट पक्ष पर प्राप्त करके एक छवि फ़ाइल भेजने की कोशिश कर रहा हूं और फिर इसे उसी नाम से फ़ाइल में लिख रहा हूं अलग निर्देशिका, लेकिन मैं फ़ाइल खोलने में असमर्थ हूं। इसके अलावा मैं नीचे अपना कोड पोस्ट कर रहा हूं, टिप्पणी किए गए भाग एक संकेत हैं कि मैंने पहले ही कोशिश की है। इसके अलावा मुझे पूर्णांक size
भेजने में समस्याएं आ रही हैं लेकिन मुझे दूसरी ओर कुछ यादृच्छिक स्ट्रिंग प्राप्त हो रही है।सॉकेट प्रोग्रामिंग पायथन
यह सर्वर स्क्रिप्ट
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("", 5000))
server_socket.listen(5)
import os
client_socket, address = server_socket.accept()
print "Conencted to - ",address,"\n"
while (1):
choice = client_socket.recv(1024)
choice = int(choice)
if(choice == 1):
data = client_socket.recv(1024)
print "The following data was received - ",data
print "Opening file - ",data
fp = open(data,'r')
strng = fp.read()
size = os.path.getsize(data)
size = str(size)
client_socket.send(size)
client_socket.send (strng)
#client_socket.close()
if (choice == 2):
data = client_socket.recv(1024)
print "The following data was received - ",data
print "Opening file - ",data
fp = open(data,'r')
strng = fp.read()
#strng = str(fp)
size = os.path.getsize(data)
print size
size = str(size)
print size
client_socket.send(size)
client_socket.send (strng)
#client_socket.close()
है और यह ग्राहक साइड स्क्रिप्ट है -
#!/usr/bin/python
# TCP client example
import socket,os
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("", 5000))
k = ' '
size = 1024
while(1):
print "Do you want to transfer a \n1.Text File\n2.Image\n3.Video\n"
k = raw_input()
client_socket.send(k)
k = int (k)
if(k == 1):
print "Enter file name\n"
strng = raw_input()
client_socket.send(strng)
size = client_socket.recv(1024)
size = int(size)
print "The file size is - ",size," bytes"
size = size*2
strng = client_socket.recv(size)
print "\nThe contents of that file - "
print strng
if (k==2):
print "Enter file name of the image with extentsion (example: filename.jpg,filename.png) - "
fname = raw_input()
client_socket.send(fname)
size = client_socket.recv(1)
print size
#size = int(size)
print "The file size is - ",size
size = size*2
strng = client_socket.recv(256456)
print "\nThe file will be saved and opened- "
fname = 'downloads/'+fname
nf = open(fname,'w')
nf.write(strng)
nf.close()
fname = 'viewnior '+ fname
print fname
os.system(fname)
मैं Crunchbang लिनक्स पर प्रोग्रामिंग रहा हूँ - अनधिकृत Debian आधारित Distro viewnior छवि दर्शक है।
आप इसे डिबग करने की कोशिश की है है: डी बस फ़ाइलें प्राप्त करने के लिए और उन्हें भेजने के लिए पुष्टि करने के लिए PyGTK इंटरफ़ेस जोड़ने की जरूरत है? 'प्रिंट repr (क्लाइंट)'? – Glaslos
आपको धन्यवाद देने का प्रयास करेगा। मैंने नई बनाई गई फ़ाइल और मूल के बीच vimdiff की कोशिश की और यह पता चला कि फाइलें समान हैं, फिर भी नव निर्मित छवि नहीं खुल जाएगी। मूल छवि का आकार और क्लोन छवि समान है और इसलिए सामग्री भी हैं। – mihirk