Jump to content

Recommended Posts

Posted

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,

Posted

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...

Posted

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,

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.