77 lines
1.9 KiB
Python
77 lines
1.9 KiB
Python
from tkinter import *
|
|
import socket
|
|
import threading
|
|
from time import sleep
|
|
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
|
|
window = Tk()
|
|
|
|
|
|
window.geometry('1200x600')
|
|
|
|
window.title('client')
|
|
|
|
|
|
typingtextbox = Text(window, height=1, width=50)
|
|
typingtextbox.place(x=250, y=550, anchor=CENTER)
|
|
|
|
chattextbox = Text(window, height=30, width=60)
|
|
chattextbox.place(x=150, y=5)
|
|
|
|
thecurrentconnectedserver = Label()
|
|
thecurrentconnectedserver.place(x=200, y=200)
|
|
|
|
name = input("What is your name? ")
|
|
ip = input('ip: ')
|
|
#ip = '192.168.1.6'
|
|
#ip='www.ggsya.ga'
|
|
#ip = '41.40.24.151'
|
|
#localhost = socket.gethostname()
|
|
#ip = socket.getaddrinfo('ggsya.ga',9000)[0][-1]
|
|
#print(localhost)
|
|
print('trying to connect')
|
|
clientsocket.connect((ip,9000))
|
|
print('connected')
|
|
|
|
|
|
|
|
|
|
def recievemessage():
|
|
print('waiting')
|
|
clientsocket.settimeout(0.1)
|
|
while True:
|
|
try:
|
|
incoming_message =clientsocket.recv(1024) # try to receive 1024 bytes
|
|
except socket.timeout:
|
|
pass
|
|
else:
|
|
incoming_message = incoming_message.decode()
|
|
chattextbox.insert(INSERT, incoming_message)
|
|
print(incoming_message)
|
|
print('waiting')
|
|
|
|
|
|
def sendmessage(event):
|
|
message = name +':' + typingtextbox.get('1.0', 'end-1c') + '\n'
|
|
typingtextbox.delete('1.0', END)
|
|
clientsocket.send(message.encode())
|
|
|
|
def sendmessagebtn():
|
|
message = name + ':' + typingtextbox.get('1.0', 'end-1c') + '\n'
|
|
typingtextbox.delete('1.0', END)
|
|
clientsocket.send(message.encode())
|
|
|
|
sendbutton = Button(window, height=1, width=5, fg='red', text='send', command=sendmessagebtn)
|
|
sendbutton.place(x=260, y=537)
|
|
|
|
clientsocket.settimeout(0.1)
|
|
|
|
thread = threading.Thread(target=recievemessage)
|
|
thread.start()
|
|
|
|
error_label = Label(window, height=1, width=5,text='error here',fg='red')
|
|
#error_label.place(x=1,y=1)
|
|
window.bind('<Return>',sendmessage)
|
|
window.mainloop()
|
|
|