Skip to content

Instantly share code, notes, and snippets.

/jchat.py Secret

Created January 8, 2013 19:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/46964c3446fdd7a4033f to your computer and use it in GitHub Desktop.
Save anonymous/46964c3446fdd7a4033f to your computer and use it in GitHub Desktop.
jChat.py
#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