VBasic ve Winsock Nesnesi (Ağ)

VBasic ve Winsock Nesnesi (Ağ)

Bir Ağda Birden Fazla Kişiyle İletişim Kurma Yöntemi

Öncelikle konuya winsock ile nasıl bağlantı kurulduğunu bildiğinizi varsayarak devam ediyorum.

Şimdi makalemizde 2 adet winsock kullanımından bahsedeceğim fakat bu winsock un 1’i indexli(daha sonradan yeni bir winsock oluşturmak için) diğeri ise normal bi winsock olacak.

Şimdi öncelikle 1. winsock umuz (index li) bu winsock umuza tıklayarak index özelliğine bir 0 yazıyoruz. Daha sonra bir adet daha winsock ekliyoruz. Ben kendim yaparken bu winsock un ismini tepki olarak değiştirdim. Bunları ekledik şimdi ne işe yarıyacağından söz edeceğim.

Tepki olarak adlandırdığım Winsock nesnesi sürekli dinleme modunda olacak yani Winsock nesnesinde hata veya herhangi bir nedenden dolayı winsock dinleme modundan çıktığı zaman tekrar dinleme moduna girmesi lazım. Daha sonradan birisi bizden bilgisarımızla iletişim kurmak üzere bağlandığı zaman direk tepki isimli winsock ile iletişim kursun ve bize listemize eklemek isteyip istemediğimizi sorsun. Yani şöyle diyebiliriz MSN messenger kullanan arkadaşlarım bilir biri bizle iletişim kurmaya çalıştığı zaman önce bize onay ile ilgili bir pencere gelir onaylıyorsak o kişi ile başka bir bağlantı kurulur.

MSN messengerin mantığı tamamen şudur.

Onaylama için başka bir bağlantı nesnesi görevlidir. Ve bu bağlantı nesnesinin adresi sabittir. Yani şöyleki sizin her msn listenizdeki bir kişi için bir winsock görevlendirilmiş ve bu winsock nesnesi o kişi ile sabit orantılı. Siz oturum açmaya kalktığınız zaman otamatik olarak sizin ip adresiniz ve boş olan port numaranız MSN messenger in kurulu olduğu ana server a bildiriliyor. Ve listelerinizdeki kişilerin size bağlanma ip leri ve portları otamatik olarak değişiyor. Şimdi bazı arkadaşlarımız diyecek bunu nasıl bu kadar çabuk yapıyor ? Aslında çabukluktan ziyade şu eğer farkeden arkadaşlarımız varsa msn e bağlandıktan sonra msn yaklaşık 5 saniye veya bazılarına göre bu 7 8 saniye sürecinde bir bekliyor işte bu bekleme süresinde MSN ip ve port adresini otamatik olarak diğer yerlere dağatım yapıyor. Arkadaşlar MSN in çalışma mantığı tamamen bu.

Şimdi ise bizim kendi projemize dönelim.

- Bizim mantığımız daha başka bir süreç içinde çalışacak fakat MSN ’ e yakın bir mantık kullanacağız.
Şimdi Bağlantı ile görevli (0) indexli winsock umuz bizim sabit. Neden sabit diye soracak olrsanız biz bu (0) indexli winsock umuz ile Tepki nesnesi arasında istek için bağlantı kuracağız.

Evet daha sonra istek için (0) index li winsock umuz devreye giriyor. Arkadaşımızın ağ ismi veya ip adresi ile istek gönderiyoruz. Yanlız şunu belirteyim winsock(0) ile tepki isimli winsock umuz aynı Port adresi üzerinden birbirlerine bağlanacaktır. Bu yüzden sakın winsock(0) ile tepki isimli winsock nesnesinin Port numaralarını farklı yapmayın.

Şimdi winsock(0)’a istek bağlantısı için yazacağımız kod şöyle :

Winsock(0).Connect ip_adresi,port_numarasi

Daha sonra karşı tarafın tepki isimli winsock nesnesi aktif hale geliyor onun Connection Request olayına da şu kodu yazacağız.

cevap = Msgbox "Karşı taraf bağlanmak için onay istiyor. Onaylıyormusunuz ?",vbyesno
if cevap=vbyes then tepki.accept requestID

eğer cevap a dönen değer vbyes (yani evetse) bağlantı sağlanacak eğer değilse bağlantı onaylanmayacak.

Sonra tepki nesnesi burda görevini başka bir winsock a devir yapacak bu işlem çok basit olacak. Bağlantı tamamlandığı takdirde yani tepki isimli winsock’un Connect olayına veri gönderme yöntemi ile IP ve onun için ayırdığınız özel port numarasını göndereceksiniz.

Daha sonra hemen program yeni bir Winsock üretecek ve karşı tarafa gönderdiği port numarasını yeni açtığı winsock ile eşdeğer yaparak winsock nesnesini dinlemeye alacak. Daha sonra karşı tarafın yapacağı tek işe ise gönderilen ip ve port numarası ile port açılan bilgisayara bağlanacak. Yalnız karşı taraf yeni bir winsock açtı aynı şekilde siz de yeni bir winsock açıp onu bağlanma için denemeye başlatacaksınız. Bağlandığı zamansa artık gerisi sizin işlem becerinize kalmış ister her kişi için veri tabanınızda kayıt turarak her seferinde ip adresi girmek yerine veri tabanınıza kaydettiğiniz bilgiler doğrultusunda bağlanmaya çalışabilirsiniz.
 
bayigram takipçi satın al instagram beğeni satın al instagram takipçi satın al tiktok takipçi satın al Buy Followers haber
vozol puff
Geri
Üst