Sıfırdan bir sunucu oluşturmak büyük bir iştir. Ancak bunu yapmak, programlama becerilerinizi büyük ölçüde geliştirebilir ve ihtiyaçlarınıza göre değiştirmenize izin verebilir. Bu eğitimde, istemcilerin birbirleriyle iletişim kurabilmesi için bir sunucu oluşturmak için python ve düşük seviyeli soket programlama kullanılacaktır. Bu aynı zamanda yalnızca pencerelerdeki işlemi de kapsayacaktır. Talimatlarda bazı bilgiler verilecektir, ancak sadece kodu istiyorsanız, şekillerde verilmiştir. (Not: Burada sunulan talimatlar yalnızca temel bilgilerdir).
adımlar
Yöntem 1/3: Python'u Yükleme
Adım 1. Python'u indirin
Python'un ana web sitesine gidin ve Python 2.7.10'u indirin. İndirdikten sonra, varsayılan ayarlarla python yükleyicisinin adımlarını çalıştırın. Bu bağlantı burada verilmiştir
Adım 2. IDLE'yi (Python GUI) çalıştırın
Python 2.7 klasörüne gidin ve IDLE'yi (Python GUI) çalıştırın, python şimdi IDLE'nin bulunduğu başlat menünüzde olmalıdır.
Adım 3. Yeni bir dosya oluşturun
Yeni açılan pencerenin sol üst köşesindeki Dosya'ya gidin ve Yeni Dosya'yı seçin, Başlıksız başlıklı boş bir pencere açmalısınız.
Yöntem 2/3: Sunucu Oluşturma
Adım 1. Gerekli modülleri içe aktarın
Bu kod için gereken iki modül “socket” ve “threading”dir. Bu, ilk satıra "soket içe aktarma *" ve sonraki satıra "içe aktarma iş parçacığı" yazarak yapılabilir.
Adım 2. Yeni bir iş parçacığı oluşturun
Bu, 2 istemcinin birbiriyle eşleşmesini sağlar. İş parçacıkları, ana program çalışırken çalışabilen işlemlerdir. Tam olarak şekilde gösterildiği gibi yazın. Bu, dizideki değişkenleri daha sonra çağrılabilmeleri için ayarlayacaktır.
Adım 3. İplik işlemi oluşturun
İstemcilerin doğrudan iletişim kurabilmeleri için, birbirlerinin IP adreslerini ve hangi bağlantı noktasını kullandıklarını içeren bilgilerini göndermeniz gerekir. Bunu yapmak için “variableName = socket(AF_NET, SOCK_DGRAM)” ile yapılabilecek bir soket nesnesi oluşturmalısınız. Bu, UDP protokolünü kullanan bir soket nesnesi yaratacaktır. Sonraki “roomSocket.bind((' ', self.port))” ile soketi belirli bir port numarası ile IP adresinize bağlayın. bu iş parçacığını aradığınızda dahil edilen bağlantı noktası numarası. Bu soketle yapmanız gereken son şey, bunun üzerinden bilgi göndermektir. Bu bir UDP soketi olduğundan, bilgi göndereceğiniz bilgisayarın IP ve portunu bilmeniz yeterlidir, gönderme sözdizimi “socketName.sendto(IP, port)” şeklindedir.
Adım 4. Global değişkenleri oluşturun
Bu adım için bir kullanıcı listesi, bağlantı noktası numaraları, istemci sayısı, iş parçacığı için istemciler ve oda kimliğini içeren birkaç değişken tanımlamanız gerekecektir. Ayrıca sunucunuzun internet ile etkileşime girebilmesi için bir soket oluşturmanız gerekecektir. Bu, yeni bir soket nesnesi oluşturularak ve belirli bir bağlantı noktası numarasıyla IP adresinize bağlanarak yapılır. (Bağlantı noktası numarası herhangi bir şey olabilir, ancak başka bir işlemin onu kullanmasını veya ayrılmış bağlantı noktası numaralarını kullanmasını önlemek için genellikle yüksek bir sayıdır.)
Adım 5. Ana sunucu işlemini oluşturun
Bu, istemci adresini alacak ve daha önce oluşturulan diziyi başlatacaktır. Bu, arabellekten veri almayı beklemeyi ve istemci adresini almayı ve iş parçacığında kullanılmak üzere kaydetmeyi içerir. Soketinizden bilgi almanın yolu “socketName.recvfrom(1024)” ile aramaktır, buradaki sayı sadece bir seferde okunan bayt miktarıdır. Bu örnekte onu userAddr adlı bir değişkende saklıyoruz ve bu gerçekleştiğinde bu adresi 4. adımda oluşturulan listeye kaydedebilirsiniz. if ifadesi iki kişi bağlanırsa bir oda dizisi oluşturacak ve yalnızca bir oda oluşturacaktır. iki farklı bağlantı gerçekleştiğinde.
Adım 6. Çalışmanızı kaydedin
Bu, test için kolayca erişilebilmesi için ulaşılması kolay bir dizinde yapılmalıdır.
Yöntem 3/3: Test Etme
Adım 1. Bir test istemcisi oluşturun
Bu, yalnızca sunucunun diğer istemcinin bilgilerini mevcut istemciye gönderip göndermediğini ele alacak çok basit bir istemcidir. Lütfen sunucu kodunun aksine bu kodun bir sunucu adı gerektirdiğini unutmayın. Tüm bunları tek bir bilgisayarda çalıştırıyorsanız, sunucu adı bilgisayarınızın adı olmalıdır. Bilgisayarımın adını Bilgisayarım'a sağ tıklayıp özelliklere giderek öğrenebilirsin.
Adım 2. Çalışmanızı kaydedin
Bu, sunucu koduyla aynı dizinde olmalıdır.
Adım 3. Üç farklı komut penceresi açın
Başlat menüsüne gidin ve arama çubuğuna "cmd" yazın ve enter tuşuna basın. Bunu üç kez yapın. Pencereler böyle görünmelidir.
Adım 4. Programları çalıştırın
Komut penceresini kullanırken tam yolu yazmanız gerekecektir. Önce bir komut penceresinde sunucu kodunu, ardından diğer ikisinde test istemci kodunu çalıştırmanız gerekecektir. Her şey başarılı olursa, pencerenizde bu mesajları alacaksınız.
Uyarılar
- Bu program yalnızca çalıştırıldığında çalışır ve aynı yerel alan ağındaki istemcileri test eder.
- Python 2.7.10 güncel değil ve desteğinin sonuna yaklaşıyor. İyi sunucular oluşturmaya devam etmek için bunun yerine Python 3'ün en son sürümünün yüklenmesi önerilir.