small reorganization to old client/server, client fixed and sending messages to server

This commit is contained in:
Xevion
2021-01-08 15:06:52 -06:00
parent 4dc14d118b
commit 390595c0e2
5 changed files with 44 additions and 58 deletions

View File

@@ -1,15 +1,17 @@
import socket
from pprint import pprint
from PyQt5.QtCore import QThread, pyqtSignal
from PyQt5.QtCore import QThread, pyqtSignal, Qt, QEvent
from PyQt5.QtWidgets import QMainWindow, QDialog, QDialogButtonBox, QVBoxLayout
from config import config
from client.MainWindow import Ui_MainWindow
from config import config
IP = '127.0.0.1'
PORT = 55555
HEADER_LENGTH = int(config.get(IP, 'HeaderLength'))
HEADER_LENGTH = 10
class ReceiveWorker(QThread):
messages = pyqtSignal(str)
@@ -24,9 +26,12 @@ class ReceiveWorker(QThread):
while True:
try:
length = int(self.client.recv(HEADER_LENGTH).decode('ascii'))
message = self.client.recv(length)
message = self.client.recv(length).decode('ascii')
if message == 'NICK':
self.client.send(self.nickname.encode('ascii'))
header = f'{len(self.nickname):<{HEADER_LENGTH}}'
final = header + self.nickname
pprint(final)
self.client.send(final.encode('ascii'))
else:
self.messages.emit(message)
except:
@@ -67,10 +72,26 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.nickname = 'Default'
self.textEdit.installEventFilter(self)
self.receiveThread = ReceiveWorker(self.client, self.nickname)
self.receiveThread.messages.connect(self.addMessage)
self.receiveThread.start()
self.show()
def addMessage(self, message: str):
def eventFilter(self, obj, event):
if event.type() == QEvent.KeyPress and obj is self.textEdit:
if event.key() == Qt.Key_Return and self.textEdit.hasFocus():
self.sendMessage(self.textEdit.toPlainText())
self.textEdit.clear()
return super().eventFilter(obj, event)
def addMessage(self, message: str) -> None:
self.textBrowser.append(message)
def sendMessage(self, message: str) -> None:
header = f'{len(message):<{HEADER_LENGTH}}'
final = header + message
pprint(final)
self.client.send(final.encode('ascii'))