• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

kop

Python sockets - problema

5 mensagens neste tópico

Queria começar a usar sockets em Python.Tinha como objectivo fazer transferencia de ficheiros, No entanto quando os ficheiros tem mais que uns bytes, ele dá problemas.

Espero que me possam ajudar, desde ja obrigado

Fica o codigo:

Server:

from socket import *

hostname = "localhost"
port = 1337
buf = 8192
addr = (hostname, port)
s = socket(AF_INET, SOCK_DGRAM)

#s = socket(AF_INET, SOCK_STREAM)
s.bind(addr)
#print s.getsockname()
#s.getpeername()
while 1:
        data, addr = s.recvfrom(buf)
        if not data:
                print "Cliente bkoken"
                break
        else:
                #print "\nReceiving data\n", data
                f=open("fsck.bin", "wb")
                f.write(data)
                f.close()

s.close()

Cliente:

from socket import *

host = raw_input ("Enter your Hostname")
port = 1337
addr = (host,port)
s = socket(AF_INET, SOCK_DGRAM)

#while (1):
        #data = raw_input('>> ')
f=open("ls", "rb")
data=f.read()
f.close()
if(s.sendto(data, addr)):
        #print "Sending message '",data,"'....."
        print "sending"
# Close socket
s.close()

[17:49:07 ] [luis@darks:~/projectos] $ python client.py

Enter your Hostnamelocalhost

Traceback (most recent call last):

  File "client.py", line 13, in ?

    if(s.sendto(data, addr)):

socket.error: (90, 'Message too long')

Cumprimentos,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

estava um post sobre Client / Server em python que não encontro...onde tinha já respondido a uma questão sobre os avanços em python... se alguem vir esse post... provavelmente procurei mal

programação sobre sockets é algo que ultrapassa qualquer linguagem e entra nos conceitos proprios de sockets... tens de respeitar as regras de programação sobre sockets e gerir os tamanhos dos blocos de bytes a comunicar... gerir os buffers, etc...

no codigo que tinha apresentado estava lá isso exemplificado se alguem o encontrar seria cool, mas de qualquer forma analisa estes docs...

Socket Programming HOWTO - Python

http://www.amk.ca/python/howto/sockets/

mais sobre o tema

http://www.hetland.org/python/instant-hacking.php

e tipo um doce por um beijo amargo

http://www.cartel-securite.fr/pbiondi/scapy.html

be the last... be the worst... be bad... be you...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, todas as linguagens se regem pelo mesmo conceito de socket. (Até porque já li um dos  sites que referiste)

Eu vou ver o que consigo fazer, depois digo mais alguma coisa.

Obrigado.

Cumprimentos,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora