-
-
Save anonymous/46964c3446fdd7a4033f to your computer and use it in GitHub Desktop.
jChat.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Zuerst den ersten Client öffnen und dann in den Einstellungen auf Client 2 stellen | |
#Danach erst den 2. Client öffnen der kann auf Clientnummer 1 bleiben | |
#Dann können die IP Addressen eingegeben werden | |
# -*- coding: utf-8 -*- | |
import Tkinter,ScrolledText | |
import socket | |
import thread | |
#Variabelen | |
z = "" | |
ip = "127.0.0.1" | |
global p1,p2,ver | |
p1 = 50000 | |
p2 = 50001 | |
ver = "1" | |
################### | |
#Verbindungsaufbau# | |
################### | |
def key(event): | |
global z | |
z = `event.char` | |
if(z == "'\\r'"): | |
send() | |
def callback(event): | |
e.focus_set() | |
def getNetworkIp(): | |
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |
s.connect(('google.com', 0)) | |
return s.getsockname()[0] | |
def add(nachr,abse): | |
z = "\n"+str(abse)+": "+str(nachr) | |
global z2 | |
t.insert("end",z) | |
def ende(): | |
esc = 2 | |
main.destroy() | |
def send(): | |
try: | |
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |
nach = e.get() | |
e.delete(0,Tkinter.END) | |
s.sendto(nach, (ip, p1)) | |
s.close() | |
del s | |
add(str(nach),"Ich") | |
except: | |
add("Sonderzeichen wie ä,ö,ü,ß sind verboten","Fehler") | |
def eins(): | |
global nu | |
global eins | |
global e2,e3 | |
nu = Tkinter.IntVar() | |
nu.set(1) | |
e2 = Tkinter.StringVar() | |
eins = Tkinter.Toplevel(main) | |
eins.title("Einstellungen") | |
l2 = Tkinter.Label(eins,text = "ServerIP") | |
l2.pack(side = "top") | |
e2 = Tkinter.Entry(eins) | |
e2.pack() | |
e2.insert("end",ip) | |
e3 = Tkinter.Entry(eins) | |
e3.pack() | |
e3.insert("end",ver) | |
l3 = Tkinter.Label(eins,text = "Clientnummer(1,2)") | |
l3.pack(expand = "NO") | |
b4 = Tkinter.Button(eins, text = "Speichern",command = eina) | |
b4.pack(side = "right",expand = "YES") | |
print(ip,ver) | |
def eina(): | |
global eing,ver,p1,p2,ip | |
ip = e2.get() | |
ver = e3.get() | |
if(ver == "1"): | |
p1 = 50000 | |
p2 = 50001 | |
print("F1",p1,p2,ver,ip,e2.get(),e3.get()) | |
elif(ver == "2"): | |
p1 = 50001 | |
p2 = 50000 | |
print("F2",p1,p2,ver,ip,e2.get(),e3.get()) | |
eins.destroy() | |
def empf(): | |
global esc | |
esc = 1 | |
while(esc == 1): | |
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |
s.bind(("", p2)) | |
nachricht, daten = s.recvfrom(1024) | |
print(daten,nachricht) | |
add(nachricht,daten[0]) | |
s.close() | |
del s | |
main = Tkinter.Tk() | |
main.title("jCHAT") | |
main.maxsize(460, 560) | |
# Erstes Label, mit Text | |
""" | |
lb1 = Tkinter.Label(main, text = "") | |
lb1["font"] = "Arial" | |
lb1["height"] = 25 | |
lb1["width"] = 50 | |
lb1["borderwidth"] = 5 | |
lb1["relief"] = "groove" | |
lb1["bg"] = "#FFFFFF" | |
lb1["fg"] = "#000000" | |
lb1["anchor"] = "nw" | |
lb1["justify"] = "left" | |
li.pack() | |
""" | |
t = ScrolledText.ScrolledText(main) | |
t["font"] = "Arial" | |
t["height"] = 25 | |
t["width"] = 50 | |
t["borderwidth"] = 5 | |
t["relief"] = "groove" | |
t["bg"] = "#FFFFFF" | |
t["fg"] = "#000000" | |
t.pack() | |
# Ende-Button | |
b = Tkinter.Button(main, text = "Ende", command = ende) | |
b.pack(side = "right",expand = "NO") | |
#Aktualisieren | |
b2 = Tkinter.Button(main, text = "Einstellungen", command = eins) | |
b2.pack(side = "left",expand = "NO") | |
#Senden | |
b3 = Tkinter.Button(main, text = "Senden", command = send) | |
b3.pack(side = "right",expand = "NO") | |
#Textfeld | |
e = Tkinter.Entry(main,width = 30 ) | |
def enter(): | |
e.bind("<Key>", key) | |
e.bind("<Button-1>", callback) | |
e.pack(side = "left",expand = "YES") | |
print("Hallo1") | |
thread.start_new_thread(enter,()) | |
print("Hallo2") | |
thread.start_new_thread(empf,()) | |
print("Hallo3") | |
add("Willkommen bei jChat,","Info") | |
add("ein Local-Network Chat-Programm","Info") | |
try: | |
add("Ihre IP "+str(getNetworkIp()),"Info") | |
except: | |
add("Problem beim Verbinden mit dem Internet","Fehler") | |
add("Herausfinden der Lokalen Ip nicht möglich","Fehler") | |
main.mainloop() | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment