Enviado em 27/07/2016 - 00:23h
ola a todos estou aqui para tirar uma duvida que me assombra a algum tempo, um problema que ocorreu enquanto eu testava alguns programas envolvendo sockets em python o programa era bem simples ele usava um cliente para entregar uma mensagem ao servidor e o servidor arquivava a mensagem e a respondia com um ack, depois de configurar um ddns no-ip, abrir uma porta e fazer uma regra de NAT(a qual nao sei se e necessaria por favor gostaria tambem que me dissessem se e ou nao) e quanto fui tentar pronto!o cliente me apresenta um erro de "conexao timeout" entao gostaria que me explicassem como resolver o erro e me dissessem porque este erro ocorre (obs:segue abaixo as sources) grato desde ja!#############
# #
# Servidor #
# #
#############
import socket
import threading
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
HOST = '192.168.0.10'
PORT = 443
sock.bind((HOST,PORT))
sock.listen(5)
print '[*]listening on %s::%d' % (HOST,PORT)
def handle_client(client_socket):
request = client_socket.recv(1024)
filew = open('msg.txt','r')
a = filew.read()
filew.close()
filew = open('msg.txt','w')
filew.write(request + a)
filew.close()
print '[$]received'
client_socket.send('ACK')
client_socket.close()
while True:
client,addr = server.accept()
print '[*]connected from: %s::%d' % (addr[0],addr[1])
client_handler = threading.Thread(target=handle_client,args=(client,))
client_handler.start()
###########
# #
# Cliente #
# #
###########
import socket
def client(HOST,PORT,msg):
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
print '[*]connecting to host...'
sock.connect((HOST,PORT))
print '[*]sending the message...'
sock.send(msg)
print '[*]waiting for answers...'
resp = sock.recv(1024)
if resp == 'ACK':
print '[$]sucess'
else:
print '[!]fail to send the message'
host = raw_input('host=>')
port = int(raw_input('port=>'))
msg = raw_input('msg=>')
client(host,port,msg)