Jump to page: 1 2 3
Thread overview
Tcp/Udp ve Ağ Programlama Öğrenmek
Oct 20, 2015
İbrahim
Oct 20, 2015
İbrahim
Oct 20, 2015
İbrahim
Oct 20, 2015
İbrahim
Oct 21, 2015
İbrahim
Oct 21, 2015
İbrahim
Oct 22, 2015
İbrahim
Oct 22, 2015
İbrahim
Oct 22, 2015
İbrahim
Oct 23, 2015
Abdullah
Oct 23, 2015
Abdullah
Tcp/Udp üzerinden başka bilgisayarları yönetmek
Nov 13, 2015
agora
Nov 13, 2015
agora
Dec 18
Zoda
October 20, 2015

Merhaba;

Ben skype vb. gibi uygulamalar hazırlamak için ağ programlamayı öğrenmek istiyorum. Bunun için Qt kullanıyorum. Sitesinden Tcp ve udp sınıflarını okuyorum fakat mantığını tam olarak anlamıyorum. Yani görüntülü konuşma ve chat sistemleri için bildiğiniz kaynaklar nelerdir?

Teşekkürler!

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 20, 2015

Verdiğiniz D kodu için teşekkürler. Aslında benim anlatmak istediğim şey Qt dışında, yani benim asıl bilmediğim Bu görüntülü konuşma nasıl oluyor? Chat sistemlerinde zaten yazı falan gönderip alıyorlar. Peki görüntüleri webcamdan nasıl gönderiyorlar? Yani istediğim kaynak aslında Qt değil de bu uygulamaların nasıl yapıldığına dair bir kaynak. Tcp ve Udp öğrenmeye çalışıyorum ama nafile. Görüntülü konuşmayı bir türlü anlamadım örnek de bulamadım doğru dürüst.
Teşekkürler!

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 20, 2015

Teşekkürler, aslında webcamdan nasıl gönderiyorlar deyince yanlış anlaşıldı. Kamerayı zaten Qt içindeki QCamera sınıfı ile yapabiliyorum:

QCamera* camera = new QCamera();
QCameraViewfinder* viewfinder = new QCameraViewfinder();

camera->setViewfinder(viewfinder);
viewfinder->show();
camera->start();

Fakat görüntülü saohbet ve chat yapmak için sanırım tcp ve udp yani ağ programlamayı bilmem gerekiyor eğer doğru biliyorsam tabi.
Alıntı:

>
Programcı bir bellek parçası ayırıyor; o API işlevini çağırarak kendi işlevini tanıtıyor; kendi işlevi çağrıldıkça da belleğine okunmuş olan görüntü karesini öteki tarafa soket üzerinden gönderiyor


Karşı taraf aldığı görüntü karesini kendi tarafındaki görüntüleme cihazına yazıyor

Burada soket üzerinden nasıl gönderilidiği ve kendi cihazına nasıl yazıldığı gibi bilgileri bilmediğim için bunları öğrenmek istiyorum aslında. Teşekkürler!

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 20, 2015

İşte istediğim bu. Teşekkürler!
Peki güvenlik sorunları olur mu? Olursa ne sorunlar olur? Çünkü bir yerde okuduğuma göre crypt etmek falan gerekiyormuş (chat sistemi için).

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 20, 2015

Kaynak bilmiyorum ama bence uygulama programcısı için gereken kavram şu:

  • Sunucu bir port üzerinde bekler

  • İstemci o porta bağlanır

  • İkisi birbirlerine mesaj gönderirler

İlk iki madde en alt düzeyde soketlerle hallediliyor ama genelde programcının o kadar alt düzeye inmesi gerekmiyor. Örneğin, Phobos'ta std.socket modülü kullanılabilir. Şöyle bir örnek program yazmıştım:

http://ddili.org/ornek_kod/istemci_sunucu.d

Aslında o program gereğinden karmaşık çünkü sunucu, koşut olarak bile çalışıyor.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 20, 2015

Alıntı (İbrahim):

>

Peki görüntüleri webcamdan nasıl gönderiyorlar?

Hiç bilmeden :) cevaplıyorum:

  • Kamera cihazı var

  • Kamerayı yöneten bir sürücü (driver) var; bu, donanım adreslerine yazarak ve okuyarak etkileşir

  • Bu sürücü ile etkileşmeye yarayan bir kütüphane var; böylece donanımla uğraşmak zorunda değiliz

  • Bu kütüphanenin "görüntü karesi hazır olunca benim yazdığım şu işlevi çağır" demeye yarayan bir işlevi (API'si) var

  • Programcı bir bellek parçası ayırıyor; o API işlevini çağırarak kendi işlevini tanıtıyor; kendi işlevi çağrıldıkça da belleğine okunmuş olan görüntü karesini öteki tarafa soket üzerinden gönderiyor

  • Karşı taraf aldığı görüntü karesini kendi tarafındaki görüntüleme cihazına yazıyor

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 20, 2015

Soket iletişimi belirli bir tarif üzerine işleyen bir düzenektir. Her programlama dilinde aynıdır. Bence "soket programlama" diye aratınca çıkan bilgiler hangi dilde olursa olsun aşağıdakileri içerir:

  • Sunucu sırasıyla şunları yapar: Önce bind, sonra listen. Bağlanan her istemci için de accept.

  • İstemci de sırasıyla şunları yapar: connect

Bu noktada artık bağlanmışlardır. send ile veri gönderirler, recv ile veri okurlar. Gerçekten temelde bundan başka bilgi gerekmiyor. :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 20, 2015

Tabii ki güvenlik sorunu olur. Tam güvenli olan hiçbir cihaz yok ki. :)

Örneğin, bilgiyi açık olarak gönderirsek herkes (örneğin, aynı şebekeyi paylaşıyorsak kapı komşusu) görebilir. Bence bu konuyu sonraya bırakabilirsin. Önce bilgi alış verişini sağla, sonra tam çıkış noktasında şifrelersin.

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 21, 2015

Tekrardan merhaba Ali hocam;

Sorunlarla karşılaşmaya devam ediyorum. Mesela Qt sistesinde şöyle bir örnek var: http://doc.qt.io/qt-5/qtnetwork-network-chat-example.html

Bu sayfadaki örneği inceliyorum ama daha başta takıldım.

  1. http://doc.qt.io/qt-5/qtnetwork-network-chat-connection-cpp.html bu sayfada bulunan 'Connection::sendMessage(...)' üye fonksiyonu neden içerisinde QByteArray barındırmak zorunda? Direk QString olarak niye göndermiyoruz mesajı?

  2. Yine 1. sorunun linkindeki sayfada 'Connection::sendGreetingMessage()' bu üye fonksiyon neden gerekli? Zaten mesaj göndermiyor muyuz sendMessage() ile?

  3. Ayrıca bu sayfadaki http://doc.qt.io/qt-5/qtnetwork-network-chat-client-cpp.html 'Client::sendMessage(const QString &message)' bu mesaj gönderme ne alaka? Zaten connection.cpp dosyasında yazmadık mı o üye fonksiyonu?

  4. Son olarak http://doc.qt.io/qt-5/qtnetwork-network-chat-server-cpp.html bu sayfadaki 'Server::incomingConnection(qintptr socketDescriptor)' bu üye fonksiyonun Türkçe karşılığı gelenBağlantı şeklinde fakat bu ne demek? Yani uygulama içinde ne işe yarıyor? Ayrıca qintptr socketDescriptor parametresine neden gerek var?

Umarım sorularımla sizi sıkmamışımdır. Eğer öyleyse affola. Malum soket programlamayı net anlatan bir kaynak bulamadım. Terimlerin çoğunu teorik olarak biliyorum. O da uygulama geliştitirken yüzeysel kalıyor.

Teşekkürler!

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

October 22, 2015

Merhaba Ali Hocam, verdiğiniz D örneğini inceliyorum (C++'a benziyor zaten). Teşekkürler.

Alıntı:

>

... Soketler resim gibi metin olmayan bilgi de gönderebildiklerinden baytlardan oluşan bilgi gönderirler. ...

Peki bu QByteArray bir resmi nasıl tutuyor (veya bir videoyu)?

Alıntı:

>

... ben bu örneğin soket programlanın kendisini öğrenmeye yarayacağını sanmıyorum. İşin içinde Qt ne yapıyor? Diyalog pencerelerine filan ne gerek var? :) Ben olsam soket programlamadan başka bir şey içermeyen bir örneğe bakardım:

Qt - C++ tercih etmemin sebebi bir kere Qt'un cross platform olması. 2. nedenim ise mobil native uygulama geliştirirken Qt tüm mobil platformlara adapte olabiliyor. Soket programlamayı Qt'da öğreneyim bari dedim ama olmadı :) C++'ın sys/socket.h adlı bir dosyası varmış onu da inceleyeyim, belki o daha az karmaşıktır.

Teşekkürler!

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

« First   ‹ Prev
1 2 3