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

teckV

[Python] Código Sockets

3 mensagens neste tópico

óaqui vão duas apps em python, uma o servMod.py cria um servidor que aceita comunicações, o cliMod.py é um cliente que inicia e recebe respostas de comunicações

servMod.py
---------------------------------------------------------------------


from socket import *

HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)

tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)

while 1:
    print "esperando ligacao"
    tcpCliSock, addr = tcpSerSock.accept()
    print "ligado a: ", addr

    while 1:
        data = tcpCliSock.recv(BUFSIZ)
        if not data: break
        tcpCliSock.send("recebendo... > " + data)

    tcpCliSock.close()
tcpSerSock.close()

-------------------------------------------------------------------------------------

cliMod.py

-------------------------------------------------------------------------------------

from socket import *

HOST = 'localhost'
PORT = 21567
BUFSIZ = 1024
ADDR = (HOST, PORT)

tcpCliSock = socket(AF_INET, SOCK_STREAM)
tcpCliSock.connect(ADDR)

while 1:
    data = raw_input('>')
    if not data: break
    tcpCliSock.send(data)
    data = tcpCliSock.recv(BUFSIZ)
    if not data: break
    print "ligado a ", ADDR, " - dados - ", data

tcpCliSock.close()

-----------------------------------------------------------------------------

experimentem que isto é giro, podem fazer tudo com isto, brute-force ou ataques de dicionário a passwords de sites, criar programas de messaging com encryptação e pessoais, receber email directamente do servidor, enfim, tudo

h2k5 - [neferu nefera nefertiti]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ainda bem que surgiu esse problema... como podes ver o erro é de Idented block... e perguntam voçes "o que é isso?"

ok... uma das maravilhas do Python é que a estrutura do código é feita através de ident "peço desculpa mas não sei traduzir isto para tuguês" e tem haver com os avanços e tabulações...

para criar um bloco estruturado o python analise os TAB's (avanços) por isso tens de organizar exactamente os avanços como está no exemplo

while 1:    
    data = raw_input('>')  
    if not data: break
    tcpCliSock.send(data)
    data = tcpCliSock.recv(BUFSIZ)
    if not data: break
    print "ligado a ", ADDR, " - dados - ", data

o python é inteligente, e depois de entenderes bem isto vais adorar, é intuitivo e mais ou menos humano

aconselho a lerem alguma teoria introdutoria a respeito do python pois ele introduz muitos conceitos extremamente poderosos e que não encontramos noutras linguagens... explorar o python é como explorar uma miuda que parece virgem mas afinal.... :nono:

muito bom para quem faz tudo de raiz e assim têm o controle total nas comunicações... fix

explora e desenvolve isso...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites