В общем есть кнопка kivy Text Input и готовый демо клиент. Не могу понять,сообщения с клиента в сервер приходили в окно приложения в этой кнопке TextInput.
Клиент:
Код:
import socket, threading, time
key = 8194
shutdown = False
join = False
def receving (name, sock):
while not shutdown:
try:
while True:
data, addr = sock.recvfrom(1024)
#print(data.decode("utf-8"))
# Begin
decrypt = ""; k = False
for i in data.decode("utf-8"):
if i == ":":
k = True
decrypt += i
elif k == False or i == " ":
decrypt += i
else:
decrypt += chr(ord(i)^key)
print(decrypt)
# End
time.sleep(0.2)
except:
pass
host = socket.gethostbyname(socket.gethostname())
port = 0
server = ("169.254.254.28",9090)
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind((host,port))
s.setblocking(0)
alias = input("Name: ")
rT = threading.Thread(target = receving, args = ("RecvThread",s))
rT.start()
while shutdown == False:
if join == False:
s.sendto(("["+alias + "] => join chat ").encode("utf-8"),server)
join = True
else:
try:
message = input()
# Begin
crypt = ""
for i in message:
crypt += chr(ord(i)^key)
message = crypt
# End
if message != "":
s.sendto(("["+alias + "] :: "+message).encode("utf-8"),server)
time.sleep(0.2)
except:
s.sendto(("["+alias + "] <= left chat ").encode("utf-8"),server)
shutdown = True
rT.join()
s.close()
Киви приложение с кнопкой ТехInpute
Код:
from kivy.app import App
from kivy.lang import Builder
from kivy.config import Config
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import *
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.image import Image
import sys
class Program_App(App):
#def btn_start(self, instance):
#instance.text='dfdfkdlkflkdf'
#print ('121212')
def ss_chat(self):
self.ss_c = open('client.py', r)
def build(self):
self.title='We'
Basic=BoxLayout(orientation='vertical')
Up_Panel=BoxLayout(orientation='horizontal', size_hint=[1,.08],
padding=[0,0,0,0])
Up_Panel.add_widget(Image(source='picture\ITx_logo.png'))
Up_Panel.add_widget(Button(text='Setting', font_size = 11,
background_color= [0, 0, 0, 0]))
Up_Panel.add_widget(Button(text='Music', font_size = 11,
background_color=[0, 0, 0, 0]))
Up_Panel.add_widget(Button(text='#WE on',
background_color= [25, 0, 0, 1],
font_size = 11))
Up_Panel.add_widget(Button(text='Messenge', font_size = 11,
background_color=[0, 0, 0, 0]))
Down = BoxLayout(orientation='horizontal') # пространство чата
Down.add_widget(TextInput(text = 'fdfdfdf',
background_color= [1, 1, 1, 1],))
Av= BoxLayout(orientation='horizontal', size_hint=[1,.2])
Av.add_widget(Button(text='AVA'))
Av.add_widget(Button(text='FOTO'))
Av.add_widget(Button(text='FOTO'))
Av.add_widget(Button(text='FOTO'))
Basic.add_widget(Up_Panel)
Basic.add_widget(Down)
Basic.add_widget(Av)
return Basic
if __name__ in ('__main__','__android__'):
Config.set('graphics', 'resizable', '0')
Config.set('graphics', 'width', '288')
Config.set('graphics', 'height', '512')
Program_App().run()