Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys, socket, thread
- class Korisnik():
- def __init__(self, ime, prezime, korime, lozinka, adresa):
- self.ime, self.prezime, self.korime, self.lozinka, self.adresa = ime, prezime, korime, lozinka, adresa
- self.razgovori = {}
- def dodajporaka(self, poraka, korisnik1):
- if korisnik1 in self.razgovori:
- self.razgovori[korisnik1] += [poraka]
- else:
- self.razgovori[korisnik1] = []
- self.razgovori[korisnik1] += [poraka]
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- MAX = 65535
- PORT = 12345
- def login(s):
- username = raw_input("Username:")
- password = raw_input("Password:")
- s.sendto("Login|" + username + "|" + password, ('127.0.0.1', PORT))
- #s.settimeout(1.0)
- data, adress = s.recvfrom(MAX)
- if data == "200":
- print "Log in successful!"
- thread.start_new_thread(listenformessages, (s,))
- sendmessage(s)
- else:
- print "Username or Password is incorrect. Please try again"
- login(s)
- def register(s):
- firstname = raw_input("Firstname:")
- lastname = raw_input("Lastname:")
- username = raw_input("Username:")
- password = raw_input("Password:")
- s.sendto("Registration|" + firstname + "|" + lastname + "|" + username + "|" + password, ('127.0.0.1', PORT))
- #s.settimeout(1.0)
- data, adress = s.recvfrom(MAX)
- if data == '200':
- print "Please log in to continue"
- login(s)
- elif data == '400':
- print "The username is already in use. Please try again"
- register(s)
- def listenformessages(s):
- while True:
- data, adress = s.recvfrom(MAX)
- print (data)
- def sendmessage(s):
- while True:
- print "Send Message!"
- username = raw_input("To:")
- message = raw_input("Message:")
- s.sendto("Message|" + username + "|" + message, ('127.0.0.1', PORT))
- if sys.argv[1:] == ['client']:
- tip = raw_input("Registration | Login")
- if tip == "Registration":
- register(s)
- elif tip == "Login":
- login(s)
- elif sys.argv[1:] == ['server']:
- registrated = {}
- loggedin = {}
- s.bind(('127.0.0.1', PORT))
- while True:
- data, adress = s.recvfrom(MAX)
- tip = data.split("|")
- if tip[0] == "Registration":
- if tip[3] in registrated:
- s.sendto("400", adress)
- else:
- registrated[tip[3]] = Korisnik(tip[1], tip[2], tip[3], tip[4], adress)
- s.sendto("200", adress)
- elif tip[0] == "Login":
- if tip[1] in registrated:
- if registrated[tip[1]].lozinka == tip[2]:
- loggedin[tip[1]] = registrated[tip[1]]
- s.sendto("200", adress)
- else:
- s.sendto("400", adress)
- else:
- s.sendto("400", adress)
- elif tip[0] == "Message":
- if tip[1] in registrated:
- if tip[1] in loggedin:
- s.sendto(tip[2], loggedin[tip[1]].adresa)
- else:
- s.sendto("The user is not logged in", adress)
- else:
- s.sendto("The user does not exist", adress)
- else:
- print >> sys.stderr, 'usage: chat.py server|client'
Add Comment
Please, Sign In to add comment