İPUCU

Python Artificial Intelligence’da en çok kullanılan dildir ve gerekli dökümanların paylaşım alanlar burada paylaşılmaktadır.

Seçenekler

Socket Tabanli Chat Scipti ile ilgili ipuclari

BufGix - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
08/2015
Nereden:
Phobos/Space
Mesajlar:
1.023
Konular:
74
Teşekkür (Etti):
314
Teşekkür (Aldı):
446
Ticaret:
(0) %
22-08-2017 22:44
#1
Socket Tabanli Chat Scipti ile ilgili ipuclari
Merhaba arkadaslar bugun socket uzerinden bir chat programi yazarsak onu nasil daha iyi ozelikler ekleyebiliriz(nickleri ayirt etme,mesajlari sifreleme vb) gibi seyleri hangi yontem ile yapabilirz onu gosterecegim cok buyuk bir yazi olmayacak.

Oncelikle bir chat scripti input tan aldigi veriyi socket teki diger kisilere aktariyor diyelim bekli biz gonderen kisinin nicinin de olmasini istiyorsak ne yapmaliyiz? Eskiden benim yaptigim bir yontem vardi soyle

Kod:
nick='easyly'

mesaj=raw_input('--> ')

socket.send(nick+'~'+mesaj)
Ayni sekilde alici tarafi ise bu mesaji soyle aliyodu

Kod:
gelen=c.recv(1024)
gelen=gelen.split('~')  #~ karakrerden sonra string i ikiye boluyor

nick=gelen[0]       #boyleikle
mesaj=gelen[1]   #mesaj ve nick i ayirabiliyordum

print nick+'--> '+mesaj
ama bu yontemin pekde kulanisli olmadigina karar verdim.Cunku eger mesajda '~' isaretten bir tane daha varsa programin isleyisi bozuluyordu. rsplit ile halledebilirdim ama baska yontemler denemeye karar verdim.

Daha sonra 'json' modulunu buldum. Bu modul, farkli veri tipindeki ogeleri string degerine ceviriyordu
Boylelikle socket ten rahatlikla gonderebiliyordum. Soyle yaptim

Kod:
import json

nick='easyly'
mesaj=raw_input('--> ')

gonderilecek={'nick':'nick,
                          'mesaj':mesaj}  ##Bir Sozluk olusturduk

gonderilecek=json.dumps(gonderilecek)  ## String e cevirdik

socket.send(gonderilecek)
alici ise bunu boyle alacakti

Kod:
import json

gelen=c.recv(1024)

gelen=json.loads(gelen) ##Stringi tekrar sozluk tipine cevirdik

nick=gelen['nick']
mesaj=gelen['mesaj']

print(nick+'--> '+mesaj)
boylelikle hem daha guvenli hemde daha hatasiz bir veri aktarimi yaptik bu sozluk icine daha farkli seyler de ekleyebilirsin mesela sifreleme anahtari veya saat degerini tasiyan bir string gibi.
---------------------
~Cahile gelmez benden hayır

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı