Python Simple Chat System Örnek Kod

Selamlar,
yeni öğrenmeye başladığım socket programlamada; arayüze sahip, yerel ağda sunucu ve istemcinin birbirine mesaj gönderebildiği, basit bir chat sistemi geliştirdim. Kodların temizliği ve geliştirilebilirliği konusunda yorumlarınızı almak isterim. Hem de socket programlamaya başlamak isteyenler için örnek olabilir belki.

Github Linki:

Birkac hata var. 1) Client acilir acilmaz:

Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib/python3.7/threading.py", line 926, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.7/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "client.py", line 26, in take_message
    self.add_message(response)
  File "/tmp/Simple-Chat-System-NorkQ-Chat/interface.py", line 21, in add_message
    self.messagesList.insert(END, message)
AttributeError: 'Client' object has no attribute 'messagesList'

Sebebi client/server kodunun interface’in hazir olmasini beklememesi. 2) Constructor’da is yapmak zaten kotu bir pratik, burada sonuclarindan birini goruyoruz. GUI’nin calismaya hazir hale getirilmesi ile ana loop’u calistirmasi farkli fonksiyonlar tarafindan icra edilmeli. Hic bir thread’in ana fonksiyonu constructor olmamali.

  1. GUI isleri ana thread’de yapilmali. Su da oradan geliyor sanirim:
Tcl_AsyncDelete: async handler deleted by the wrong thread
  1. server/client/interface adinda uc dosya olunca interface server ile client arasindaki interface saniliyor, oysa ki kullanici ile server/client programlari arasindaki interface('lerin tabani). Daha spesifik olarak “user interface” veya “graphic user interface” demek daha iyi olur.

  2. mesajlar arbitrary (keyfi? ihtiyari?) bir sekilde 4096 byte’ta bir ayriliyor. Ornek kod icin gereksiz bir detay olabilir ama bir yerlere yazilmasi lazim(di), bu cevaba bile olsa.

1 Beğeni

Uyarılarınız için teşekkürler dikkate alacağım hepsini.