blob: 8a8f2c1011ed6dae89d5001dbd6161620450f92f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
'''
Created on 29.3.2017
@author: T
'''
import socket
import time
import threading
from datetime import datetime
import sys
HOST = "127.0.0.1"
BUFFER_SIZE = 1024
DEBUG = True
def debug(string):
if (DEBUG):
print("{} DEBUG: {}".format(datetime.now(), string))
def connect(host, nick):
msg = "CONNECT\n" + nick + "\n\0"
s.connect((HOST, 2000))
debug("connected")
s.send(msg.encode(encoding='utf_8'))
def disconnect():
msg = "DISCONNECT\n" + nick + "\n\0"
s.send(msg.encode(encoding='utf_8'))
def send_message(viesti):
msg = "MESSAGE\n" + nick + "\n" + viesti + "\0"
s.send(msg.encode(encoding='utf_8'))
def keep_alive():
debug("laskuri started")
while 1:
time.sleep(10)
msg = "KEEPALIVE\n" + nick + "\n\0"
s.send(msg.encode(encoding='utf_8'))
debug("10 sekuntia meni -> KEEPALIVE")
def listen_messages():
debug("kuuntelija started")
while 1:
rec = s.recv(BUFFER_SIZE).decode()
osat = rec.split("\n")
debug(osat)
debug(rec)
if osat[0] == "BROADCAST":
print(osat[1] + ": " + osat[2])
host = input("Syota ip")
nick = input("Syota nick")
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect(host, nick)
#luodaan laskuri
laskuri = threading.Thread(target=keep_alive, args=())
laskuri.start()
#luodaan viestien kuuntelija
kuuntelija = threading.Thread(target=listen_messages, args=())
kuuntelija.start()
#odotetaan kayttajan kirjoittavan viestin tai lopettavan ohjelman -quit-komennolla
while 1:
syote = input()
if syote == "-quit":
disconnect()
break
else:
send_message(syote)
#Yrityksia poistaa kayttajan syote koska tulee muuten kahteen kertaan
#print("", end="\r")
#sys.stdout.write("\r")
debug("Stopped")
|