Evet arkadaşlar, şimdi dinleyicimizin ana nokta exe çalıştırılabilir dosyasının veya ana uygulamamızın uygulanmasıyla
başlayalım.
Böylece dosya dinleyicisinde olduğumu görebilirsiniz Ana nokta C Sağ.
Yapmamız gereken ilk şey, iki dinleyici iş parçacığını temsil eden iki iş parçacığı tanıtıcısı
oluşturmaktır, değil mi?
Burada işaretçi tipinde olan ve dinleyici iş parçacıklarını temsil eden iki değişken alıyorum, dinleyici bir
ve dinleyici iki.
Doğru.
Şimdi uygulamam başlar başlamaz, 3001 numaralı bağlantı noktasını dinleyen bir numaralı dinleyici iş parçacığı
oluşturmama izin verin.
Değil mi?
Bunun için yapacağım şey API sunucusunu kullanmak, oluşturmak ve başlatmak olacak.
Daha önce de belirttiğim gibi, bu API'nin ilk argümanı IP adresi olmalıdır; bizim durumumuzda bu adres her zaman
127'dir. 0. 0. 1.
İkinci bağımsız değişken bir bağlantı noktası numarası ve üçüncü bağımsız değişken de paket alma işlevine bir işaretçidir.
Doğru.
Bu API, dediğim gibi, 3000 numaralı bu bağlantı noktasını dinleyecek bir dinleyici iş parçacığı
oluşturacak ve bu API iş parçacığına bir işaretçi döndürecektir.
Değil mi?
Tam olarak aynı satırlarda, ikinci bir dinleyici iş parçacığı oluşturabilirsiniz, böylece 3001 numaralı bağlantı noktasını dinleyecek
ikinci bir dinleyici iş parçacığı oluşturduğumu görebilirsiniz.
Doğru.
Ve ben bittim.
Böylece uygulamam iki dinleyici iş parçacığı oluşturdu.
Şimdi bu paket alma işlevinin ne olduğunu tartışalım.
Yani bu fonksiyon uygulama ve paketin sahip olduğu fonksiyondur.
Dinleyici iş parçacıkları paketi bildirmek için bu işlevi kullanmalıdır.
Dinleyici iş parçacıkları ağdan uygulamaya ulaşmıştır.
Doğru.
Dolayısıyla, bu paket alma işlevinin bir uygulamasına sahip olmalıyız.
Öyleyse bu işlevi uygulamama izin verin.
Bu işlevde karmaşık hiçbir şey yapmayacağım.
Basitçe, bazı mesajlar yazdıracağım.
Örneğin, burada alınan paketi ve paketin boyutunu yazdırıyorum.
Değil mi?
Burada karmaşık bir mantık uygulamak zorunda değilsiniz çünkü ben sadece dinleyici iş parçacıklarının paketi
işlenmek üzere ana uygulamaya nasıl devredebileceğini göstermek istiyorum.
Değil mi?
Yani bu işlev, paketin işlenmek üzere ana uygulamanız tarafından alındığını gösterir, değil
mi?
Gördüğünüz gibi tüm sihir bu UDP sunucu oluşturma ve başlatma fonksiyonunda yatıyor.
Şimdi bu fonksiyonu anlamak için çok temel UDP programlamasına aşina
olmanız gerekir.
Bu yüzden bu işlevin uygulanmasını tartışacağım, ancak bu işlevin uygulanmasını
hızlı bir şekilde tartışacağım çünkü biraz soket programlama bildiğinizi ve temel bir UDP sunucu programı
yazabilecek durumda olduğunuzu varsayıyorum, değil mi?
Ve tabii ki, bir şey daha var ki, programınız p thread exit kullanarak sonlandırılmalıdır.
Söylediğim gibi, ana iş parçacığınızı p thread exit kullanarak sonlandırdığınızda, yalnızca ana iş parçacığınız sonlanırken,
uygulamanız tarafından oluşturulan diğer iş parçacıkları çalışmaya devam eder.
Doğru.
Artık bu programı derleyebilecek ve çalıştırabilecek bir konumdasınız.
Böylece programınız 3000 ve 3001 numaralı portları dinleyecek ve uygulamanızı test etmek için UDP standart nokta
X çalıştırılabilir dosyasını kullanabilirsiniz.
Değil mi?