54 lines
1.7 KiB
Python
Executable File
54 lines
1.7 KiB
Python
Executable File
import wx
|
|
import socket
|
|
|
|
class MyFrame(wx.Frame):
|
|
def __init__(self):
|
|
super().__init__(parent=None, title='VCK Online')
|
|
panel = wx.Panel(self)
|
|
my_sizer = wx.BoxSizer(wx.VERTICAL)
|
|
self.text_ctrl = wx.TextCtrl(panel)
|
|
my_sizer.Add(self.text_ctrl, 0, wx.ALL | wx.EXPAND, 5)
|
|
my_btn = wx.Button(panel, label='Press Me')
|
|
my_btn.Bind(wx.EVT_BUTTON, self.on_press)
|
|
my_sizer.Add(my_btn, 0, wx.ALL | wx.CENTER, 5)
|
|
panel.SetSizer(my_sizer)
|
|
self.host = "lukesau.com"
|
|
self.port = 8328 # socket server port number
|
|
self.header_size = 1024
|
|
self.format = "utf-8"
|
|
self.disconnect_message = "!DISCONNECT"
|
|
self.Show()
|
|
|
|
def on_press(self, event):
|
|
message = self.text_ctrl.GetValue()
|
|
if not message:
|
|
print("You didn't enter anything!")
|
|
else:
|
|
client_socket = socket.socket()
|
|
client_socket.connect((self.host, self.port))
|
|
self.send(message, client_socket)
|
|
self.text_ctrl.SetValue("")
|
|
self.send(self.disconnect_message, client_socket)
|
|
def send(self, msg, input_socket):
|
|
message = msg.encode(self.format)
|
|
msg_length = len(message)
|
|
print(msg_length)
|
|
send_length = str(msg_length).encode(self.format)
|
|
send_length += b' ' * (self.header_size - len(send_length))
|
|
input_socket.send(send_length)
|
|
input_socket.send(message)
|
|
print("done sending")
|
|
print(input_socket.recv(2048).decode(self.format))
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app = wx.App()
|
|
frame = MyFrame()
|
|
app.MainLoop()
|
|
|
|
|
|
|
|
|