0
I’ve been chatting on python , and when I test locally, the chat works, but when I test on networks that are in different places, it doesn’t work, example server on my computer and client on a friend’s computer.
client code:
from socket import socket,AF_INET,SOCK_STREAM
from threading import Thread
import time
# -*- coding: utf-8 -*-
#classe para manipular o socket
class Send:
def __init__(self):
self.__msg=''
self.new=True
self.con=None
def put(self,msg):
self.__msg=msg
if self.con != None:
#envia um mensagem atravez de uma conexão socket
self.con.send(str.encode(self.__msg))
def get(self):
return self.__msg
def loop(self):
return self.new
#função esperar - Thread
def esperar(tcp,send,host='',port=5000):
destino=(host,port)
#conecta a um servidor
tcp.connect(destino)
while send.loop():
print('Conectado a ',host,'.')
#atribui a conexão ao manipulador
send.con=tcp
while send.loop():
#aceita uma mensagem
msg=tcp.recv(1024)
if not msg: break
print(str(msg))
print("intel x86 ")
print("fuzzing esta acontendo espere!!")
time.sleep(10)
print("ENDEREÇO de MEMORIA BASE: 0x45643476")
print("KERNEL: windows 3.3")
print("ADRL E CANARY PROTEÇOES")
print("STACK COM ASDLER ")
if __name__ == '__main__':
print(" Deselvolvido alexsander borges (aemg_borges) ")
print('\nDigite o nome ou IP do servidor(localhost): ')
host=raw_input()
print(host)
if host=='':
host = '127.0.0.1'
#cria um socket
tcp=socket(AF_INET,SOCK_STREAM)
send=Send()
#cria um Thread e usa a função esperar com dois
argumentos
processo=Thread(target=esperar,args=(tcp,send,host))
processo.start()
print('')
msg= raw_input()
while True:
send.put(msg)
msg=raw_input()
processo.join()
tcp.close()
exit()
server code:
from socket import socket,AF_INET,SOCK_STREAM
from threading import Thread
#classe para manipular o socket
class Send:
def __init__(self):
self.__msg=''
self.new=True
self.con=None
def put(self,msg):
self.__msg=msg
if self.con != None:
#envia um mensagem atravez de uma conexão socket
self.con.send(str.encode(self.__msg))
def get(self):
return self.__msg
def loop(self):
return self.new
#função esperar - Thread
def esperar(tcp,send,host='',port=5000):
origem=(host,port)
#cria um vinculo
tcp.bind(origem)
#deixa em espera
tcp.listen(1)
while True:
#aceita um conexão
con,cliente=tcp.accept()
print('Cliente ',cliente,' conectado!')
#atribui a conexão ao manipulador
send.con=con
while True:
#aceita uma mensagem
msg=con.recv(1024)
if not msg: break
print (str(msg,'utf-8'))
if __name__ == '__main__':
#cria um socket
tcp=socket(AF_INET,SOCK_STREAM)
send=Send()
#cria um Thread e usa a função esperar com dois argumentos
processo=Thread(target=esperar,args=(tcp,send))
processo.start()
print('Iniciando o servidor de chat!')
print('Aguarde alguém conectar!')
msg=input()
while True:
send.put(msg)
msg=input()
processo.join()
tcp.close()
exit()
you are using the same network?
– Brumazzi DB
u have to make a vpn (eg. using hamachi) or open a few ports in the router
– rodorgas
The common solution is to use techniques to drill NAT, which is what P2P applications normally do (chat, games etc). Search for NAT Punch-through, UDP/TCP hole Punching, etc.
– Bacco