Ich bin neu in Python, ziemlich gewöhnt an C-style-Programmierung und ich habe einen Fehler mit "if" -Anweisung in Python. Ich versuche eine Variable in einer while-Schleife zu inkrementieren; Verwenden Sie eine "if" -Anweisung, um es vor dem Drucken zu überprüfen, aber es funktioniert aus irgendeinem Grund nicht. Hier ist der Code unten, ich ähnliche Fehler sah, konnte aber nicht anwenden, was ich von dort bekamIF-Anweisung funktioniert nicht Python
import socket
import time
import threading
tLock = threading.Lock()
shutdown = False
kt = 0
def receving(name, sock):
while not shutdown:
try:
tLock.acquire()
while True:
data, addr = sock.recvfrom(1024)
if kt > 0:
print str(kt)
kt = kt+1
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 = raw_input("Please Enter Your Name: ")
message = raw_input(alias + " Please Enter Your Password:")
while message != 'q':
if message != '':
s.sendto(alias + ":" + message, server)
tLock.acquire()
message = raw_input(alias + "-> ")
tLock.release()
time.sleep(0.2)
shudown = True
rT.join()
s.close()
Und hier ist der Server Import Socket Importzeit Import
host = '127.0.0.1'
port = 5000
clients = []
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host,port))
s.setblocking(0)
checkpass = False
quitting = False
print "Server Started."
while not quitting:
try:
data, addr = s.recvfrom(1024)
if checkpass == False:
userNa,passWo = data.split(":")
daata =[line.strip() for line in open("passFile.txt",'r')]
for index,item in enumerate(daata):
if userNa == daata[index] and passWo ==daata[index+1]:
checkpass = True
print "Welcome " + userNa +" You have successfully logged in!"
break;
else:
print "Your username and/or password was incorrect try again"
else:
print "well we tried"
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()
Was Sie sehen und was erwarten Sie zu sehen ? – kjschiroo
Welcher Fehler? .... – Signal
Bitte posten Sie ein kurzes, ** vollständiges ** Programm, das den Fehler anzeigt, den Sie sehen. Bitte schreiben Sie die Ausgabe, die Sie sehen, und die Ausgabe, die Sie erwartet haben. Für weitere Informationen lesen Sie bitte [mcve] und [fragen]. –