Je suis en train de passer d'une image sur la prise python pour des images plus petites, il fonctionne très bien, mais pour des images plus grandes, il donne erreurerreur en essayant de passer (grande) image sur la prise en python
socket.error: [Errno 10040 ] un message envoyé sur un socket datagramme était plus grande que le tampon de message interne ou d'une autre limite du réseau, ou le tampon utilisé pour recevoir un datagramme était plus petit que le datagramme lui-même
J'utilise
socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Merci pour tout indice .
J'ai essayé d'utiliser SOCK_STREAM, ça ne marche pas .. Il me dit juste de commencer ... et se bloque. sans sortie .. Il ne sort pas de la fonction d'envoi
import thread
import socket
import ImageGrab
class p2p:
def __init__(self):
socket.setdefaulttimeout(50)
#send port
self.send_port = 3000
#receive port
self.recv_port=2000
#OUR IP HERE
self.peerid = '127.0.0.1:'
#DESTINATION
self.recv_peers = '127.0.0.1'
#declaring sender socket
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.socket.bind(('127.0.0.1', self.send_port))
self.socket.settimeout(50)
#receiver socket
self.serverSocket=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
self.serverSocket.bind(('127.0.0.1', self.recv_port))
self.serverSocket.settimeout(50)
#starting thread for reception
thread.start_new_thread(self.receiveData,())
#grabbing screenshot
image = ImageGrab.grab()
image.save("c:\\test.jpg")
f = open("c:\\ test.jpg", "rb")
data = f.read()
#sending
self.sendData(data)
print 'sent...'
f.close()
while 1: pass
def receiveData(self):
f = open("c:\\received.png","wb")
while 1:
data,address = self.serverSocket.recvfrom(1024)
if not data: break
f.write(data)
try:
f.close()
except:
print 'could not save'
print "received"
def sendData(self,data):
self.socket.sendto(data, (self.recv_peers,self.recv_port))
if __name__=='__main__':
print 'Started......'
p2p()
J'ai essayé d'utiliser SOCK_STREAM, mais il ne sort pas de la fonction d'envoi. J'ai mis à jour ma question avec le programme actuel. J'avoue ne pas savoir comment l'utiliser. Y at-il d'autres changements nécessaires pour utiliser SOCK_STREAM, merci – Xinus
son travail maintenant j'ai essayé le programme à http://docs.python.org/library/socket.html – Xinus