2016-11-28 1 views
2

Nachrichtenverschlüsselung mit einem Basis-Client versucht, Verbindung Client-Code zu bewirten:str nicht aufrufbar sendto Python

import socket 
import datetime 
import time 

import threading 

tLock = threading.Lock() 
shutdown = False 

def receving(name, sock): 
    while not shutdown: 
     try: 
      tLock.acquire() 
      while True: 
       data, addr = socket.recvfrom(1024) 
       print (str(data)) 
     except: 
      pass 
     finally: 
      tLock.release() 

host = '127.0.0.1' 
port = 0 

server = ('127.0.0.1',5000) 

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
s.bind((host, port)) 
s.setblocking(0) 

rT = threading.Thread(target=receving, args=("RecvThread",s)) 
rT.start() 

alias = input("Name: ") 
IP=int(socket.gethostbyname(socket.gethostname()).replace(".","5")) 
time=(int(datetime.datetime.now().strftime("%Y%m%d%H%M%S"))) 
qw=(int(str((time)+(IP)))) 
a=int("934") 
b=int("346") 
c=int("926") 
d=int("9522") 
e=int("7334") 
f=int("5856") 
g=int("2432") 
h=int("2027") 
i=int("7024") 
j=int("828") 
k=int("798") 
m=int("593") 
n=int("662") 
l=int("5950") 
o=int("357") 
p=int("506") 
q=int("237") 
r=int("98") 
s=int("372") 
t=int("636") 
u=int("553") 
v=int("255") 
w=int("298") 
x=int("8822") 
y=int("458") 
z=int("657") 
space=("633") 
msg=input("") 
msg=msg.replace("a",(str(a))) 
msg=msg.replace("b",(str(b))) 
msg=msg.replace("c",(str(c))) 
msg=msg.replace("d",(str(d))) 
msg=msg.replace("e",(str(e))) 
msg=msg.replace("f",(str(f))) 
msg=msg.replace("g",(str(g))) 
msg=msg.replace("h",(str(h))) 
msg=msg.replace("i",(str(i))) 
msg=msg.replace("j",(str(j))) 
msg=msg.replace("k",(str(k))) 
msg=msg.replace("m",(str(m))) 
msg=msg.replace("n",(str(n))) 
msg=msg.replace("l",(str(l))) 
msg=msg.replace("o",(str(o))) 
msg=msg.replace("p",(str(p))) 
msg=msg.replace("q",(str(q))) 
msg=msg.replace("r",(str(r))) 
msg=msg.replace("s",(str(s))) 
msg=msg.replace("t",(str(t))) 
msg=msg.replace("u",(str(u))) 
msg=msg.replace("v",(str(v))) 
msg=msg.replace("w",(str(w))) 
msg=msg.replace("x",(str(x))) 
msg=msg.replace("y",(str(y))) 
msg=msg.replace("z",(str(z))) 
msg=msg.replace(" ",(str(space))) 
print(msg) 
msg=int(msg) 
msg=int(msg)*(qw) 
print(msg) 
fileb=open("key.txt","w") 
filec=fileb.write(str(qw)) 
fileb.close() 
file=open("msg decrypt.txt","w") 
filea=file.write(str(msg)) 
file.close() 
msg=(str(e)(msg)) 
print(IP) 
print(qw) 
if msg != 'q': 
    if msg != '': 
     s.sendto(alias.encode() + ": ".encode() + (str(msg).encode)(), server) 
tLock.acquire() 
msg = input(alias + "-> ") 
tLock.release() 

shudown = True 
rT.join() 
s.close() 

Host-Code:

import socket 
import time 

host = '127.0.0.1' 
port = 5000 

clients = [] 

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
s.bind((host,port)) 
s.setblocking(0) 

quitting = False 
print ("Server Started.") 
while not quitting: 
    try: 
     data, addr = s.recvfrom(1024) 
     if "Quit" in str(data): 
      quitting = True 
     if addr not in clients: 
      clients.append(addr) 

     print (time.ctime(time.time()) + str(addr) + ": :" + str(data)) 
     for client in clients: 
      s.sendto(data, client) 
    except: 
     pass 
s.close() 

Im kämpfen als meine schlechte Ausrede einer Verschlüsselung ist meist Zahlen also also, wenn im Senden mit der sendto-Funktion verwendet nur Str`s oder so denke ich? oder so bekomme ich den Fehler:

Traceback (most recent call last): 
    File "H:\client 2.py", line 103, in <module> 
    msg=(str(e)(msg)) 
TypeError: 'str' object is not callable 
+1

Parens, Pars, parens überall –

+0

Was ist der Zweck dieser Linie ist 'msg = (str (e) (msg)) '? Auch ein Fehler in der 'receiving()' Funktion des Clients - es sollte 'sock.recvfrom (1024)' sein, nicht 'socket.recvfrom()'. Dieser Fehler ist durch die bloße 'except'-Anweisung verborgen. – mhawke

Antwort

0

Wenn msg ein Index ist, sollten Sie schreiben:

msg = str(e)[msg] 
+0

Traceback (letzter Aufruf zuletzt): Datei "H: \ Client 2.py", Zeile 103, in msg = str (e) [msg] IndexError: kann 'int' nicht in eine Index-Ganzzahl passen –

+0

msg = str (e) [msg] wenn msg Chr

+0

AttributError: 'int' Objekt hat kein Attribut 'sendto' –

Verwandte Themen