Ana içeriğe atla

Qt Quick Client ile Non-Qt Server Haberleşmesi

Merhaba arkadaşlar,
Gebze Teknik Üniversitesi 2016-2017 döneminde, Proje-II dersi kapsamında yaptığımız projede(çalışmayı github hesabımda bulabilirsiniz) ihtiyacımız olan haberleşmeyi çalışma arkadaşımla hazırladım. Basit bir versiyonunu, aynı örneği bulamadığımdan benden sonraki arkadaşlara kolaylık olsun diyerek hazırladım. Qt Quick örnekleri az bulunur nitelikte, özellikle Qt dökümanlarında baktığım zaman Qt Widget ile hazırlanmış uygulamalar görmekteyim. Butonların ilişkisi vb. durumlar Qt Quick'te farklı işlemekte. Gerek bu açıdan, gerek haberleşme açısından kodu inceleyebilirsiniz.

QtSocket olsun, o soket olsun bu soket olsun farketmez, iletişimde temellerin çok değiştiğini görmedim. Soket uygulamalarında server tarafında iseniz:

    1. İlgili datalarınız varsa(adres ve sokete dair struct'lar, classlar vb.)  initialize edersiniz.
    2. Yeni bir soket açarsınız.
    3. Soketi bind edersiniz(bağlarsınız).
    4. Sokete gelen bağlantılar için soketi dinlersiniz.
    5. Sokete gelen bağlantıyı kabul ederseiniz.
    6. Gerekli data alış-verişini yaparsınız.
    7. Bağlantıyı kapatırsınız. (En önemlisi, arkada iz bırakmamaktır.)
 
Client tarafında da durum farklı değil gibi:
  1. İlgili datalarınızı initialize edersiniz. 
  2. Yeni bir soket açarsınız.
  3. IP adresi, port numarası gibi bilgileri ayarlarsınız. 
  4. Bağlantıyı kurarsınız.
  5. Gerekli data alış-verişini yaparsınız.
  6. Bağlantıyı kapatırsınız. 
Genel olarak bu algoritmalar sırasıyla işlediği sürece, soketi kapatmayı unutmadığınız sürece, hata kontrolünü de yaparsanız bir sorun olacağını düşünmüyorum. Kullandığınız teknolojinin dökümantasyonunu okuyarak yeterli bilgiye sahip olabilirsiniz. 

Koda eklediğim yorumlar yetersiz geldiyse, yorumda belirtebilirsiniz. Qt quick kullanacak arkadaşlar için iyi bir egzersiz olabilir. Kodu, projenin hızlı bitmesi amacıyla hataları en aza indirmek ve hızlı olmak amacıyla sağdan soldan sömürerek değişiklikler yaparak uyarladım. İyi bir kaynak olmasını umut ediyorum. Link :


-12335. Gün


Yorumlar

Bu blogdaki popüler yayınlar

-12345. Gün

Merhaba arkadaşlar, bloguma hoş geldiniz... Ben Ali Yasin Eser, Gebze Teknik Üniversitesi Bilgisayar Mühendisliği 3. sınıftayım. Öğrenci evinde yaşıyorum,  hobi olarak gitar çalıyor, rubik küpleri çözüyor ve daha sayamayacağım hobileri geliştirmeye çalışıyorum.  Alanımı arıyor, mobilde karar kıldığımı düşünüyorum. Kendimi geliştirmek ve merak duygumu  taze tutmak yegane amacım. Şimdilik benden bu kadar diyelim. Bilgi paylaştıkça çoğalır derler. 21 yaşına gelmiş, üniversitenin ilk 3 yılında ilerlemiş ve kendini geliştirmeye çalışan biri olarak, bir bilgi birikimine sahip olduğumu düşünüyorum. Amacım, bilginin sadakası olan paylaşmayı, blogumda size çeşitli şekilde aktarım yaparak uygulamak. Sadece yazılım ve bilgisayar mühendisliği üzerine yazmayı düşünmüyorum. Eksik gördüğüm kaynaklar olursa elbet tutorial yapabilir veya bazı konular üzerine düşüncelerimi ifade edebilirim fakat müzikten ve sosyal hayattan, ilham aldığım konuşmalardan, spordan sağlıktan, en az  yazılımdan bahsettiği

Grup Projeleri 101

Bu yazımda, grup projesi hakkında konuşacağım. GTÜ’de edindiğim bir tecrübe, yaptığım proje ve beraber çalıştığım grup bazında anlatmaya çalışacağım. Anlattıklarım projeye göre değişecek elbette, içinde bulunduğum 3 grup projesinde edindiğim tecrübelerimi aktarıyorum. İş ile alakalı konuları ele alacak kadar tecrübem bulunmuyor an itibari ile. Bahsedeceğim grup ahlakına aykırı davranışları bizzat uygulamış biri olarak, birilerini suçlamaktan çok yaptıklarımın yanlışını, başkalarını yapmamaları gereken davranışlardan haberdar etmek amacıyla yazıyorum. Haydi başlayalım: Grup projeleri, hiç tecrübe etmemiş birine göre çok fantastik gelebilir. Daha önceden tecrübe etmişleri farketmek çok zor olmaz, yedikleri veya attıkları kazık ile daha önceki projeyi vermiş veya verememiş olmanın bir rahatlığı vardır. İki türlü de, tecrübeli bir insan grupta küçük bir avantaj sayılabilir diye düşünüyorum. Proje ilk verildiğinde, özellikle yazılımcıysanız kullanılacak teknolojileri hemen hemen f