Ana içeriğe atla

Java Ağ Programlama - 1

Merhaba arkadaşlar. Bu yazı ile yeni bir seriye başlıyoruz inşallah. Umarım faydalı olur. Eğer bir öneriniz varsa bize iletebilirsiniz. Elimizden geldiği kadar dikkate alacağız. O zaman hadi başlayalım :)

İlk olarak, bazı temel kavramları ve konuları öğrenmemiz gerekiyor. Çünkü ağ programlama yaparken neyin ne olduğunu ne işe yaradığını bilelim.



Host: Ağ'da belli bir adresi olan makinedir

IP: Ağdaki her host'u(makineyi) belirleyen, her makineye özel olan bir adrestir.IPv4 adresi 32 bit'ten oluşur. 0.0.0.0 ve 255.255.255.255 arasında değişen değerler alabilir. IPv6 adresi'de 128 bit uzunluğundadır. Biz IPv4 adresleri ile işlem göreceğiz ve bundan sonra IP adresi yazarsak bunun v4 olduğu anlaşılmalıdır :)
Hostname: IP adresleri için sembolik bir isimdir. IP adreslerini akılda tutmak zor olduğu için, bunun yerine daha kolay hatırlanabilen isimler verilmiştir. IP adreslerinin çözümlenmesi DNS servisleri tarafından yapılır.
Yerel Ağ: Küçük bir alandaki ağı temsil eder kısaca. Cmd üzerinde ipconfig yazarak elde ettiğiniz IP adresi sizin yerel ağınızdaki IP adresinizi verir. 192.168.*.* şeklinde bir adrestir.
WAN: WAN yani WideAreaNetwork(Geniş Alan Ağı), birbirinden çok uzakta olan yerel ağların router'lar ve daha birçok farklı teknolojik imkanlarla birbirine bağlanması sonucu oluşur.
URL: URL, hepimizin bildiği gibi Web'de bir adres formatıdır. http://example.com bir URL'dir mesela.
Protokol: Protokol, iletişim kuralları olan sistemlerdir. Mesela HTTP,HTTPS,FTP birer protokol'dur. HTTP web üzerinde standart olan bir protokoldür(Hyper Text Transfer Protocol). FTP ise dosya aktarım protokolüdür(File Transfer Protocol). Protocol'ler olmazsa sistemler birbiri ile iletişim kuramayacaktır. Kısaca Protokol'ler sistemler arası iletişim kurallarını belirler. Port: Port, bir makinede bağlantı noktalarını(numara) ifade eder. Fiziki port değildir. Yani sanaldır. Port'u şu şekilde örneklendirebiliriz. Bir binanın birden fazla girişleri olsun. İşte burada her kapı bir portu ifade eder. Her kapıyı sadece bir servis kullanabilir. HTTP protokollerinde standart olarak 80 portu kullanılır.

Şimdilik bu kadar kavram yeter. Aslında çok kavram var ancak biz şimdilik bunları bilelim. Daha fazlasını isteyenler internette arama yapabilirler.

Neyse konuyu fazla dağıtmayalım. Java'da bir URL nasıl tanımlanır görelim

URL sınıfı java.net içerisinde bulunuyor. Dolayısı ile ilk olarak import ediyoruz. Ve eğer URL tanımlarken hata blokları içine almak için MalformedURLException hatasını yakaladık. Eğer URL adresi düzgün yazılmamışsa yada bilinmeyen bir protokol girilirse MalformedURLException hatası oluşacaktır.URL tanımlarken istersek bilgileri ayrı ayrı da girebiliriz.

Şimdi, URL nesnesinin birkaç özelliğinden bahsedelim ve bugünlük ara verelim. URL nesnesini tanımladıktan sonra aşağıdaki özellikleri kullanabiliriz.
getHost() bize adresin host ismini verir. getProtocol() bize bağlantının protokolünü verir. Ve getPort() bize bağlantı portunu verir. Eğer biz portu tanımlamadıysak -1 olarak geri dönüş yapacaktır. Eğer web adresini şu şekilde yazarsak bize portu verir.

Başka bir yazım şekli;


Sorularınız varsa sorabilirsiniz. Bir sonraki yazıda buluşmak dileği ile :)

Yorumlar

Bu blogdaki popüler yayınlar

Python Subprocess

subprocess modülü, yeni bir process oluşturmayı sağlayan, bunların girdi-çıktılarını ele alma imkânı veren ve dönüş kodlarını almayı sağlayan bir modüldür. Yani daha basit bir şekilde, program içinde program çalıştırmaya imkan veren bir modüldür. Subprocess Modülünün Kullanımı subprocess basit bazı process'leri kullanmak için birkaç tane fonksiyon sunuyor. Daha karmaşık bir process çalıştırmak isterseniz, Popen sınıfını kullanabilirsiniz. Bunlara detaylı bir şekilde değinmeye çalışacağız. Şimdi basit fonksiyonları inceleyelim

CLAHE (Contrast Limited Adaptive Histogram Equalization) Histogram Eşitleme Tekniği

Bu yazıda CLAHE algoritmasını nasıl uygulayacağımızı ve verilen bir resmi histogram eşitlemesi için nasıl işleyeceğimizi öğreneceğiz. Bu yazıda, CLAHE algoritmasının, görüntü iyileştirme için nasıl uygulandığını göreceğiz. CLAHE, görüntü kontrast değerlerinin aşırı yüksekliği ile ilgilenen AHE algoritmasının bir varyantıdır. CLAHE, bütün resim üzerinde işlem yapmak yerine kesitler olarak adlandırılan küçük bölgeler üzerinde işlem yapar. Küçük kesitlerde yapılan işlem sonrasında oluşan yapay sınırları kaldırmak için bilinear interpolasyon işlemi uygulanarak bu küçük kesitler birleştirilerek son görüntü elde edilir.  Bu algoritma görüntü kontrastını iyileştirmek için kullanılabilir. CLAHE algoritmasını renkli görüntülere de uygulayabiliriz. Genelde HSV görüntülerin yalnızca parlaklık kanalına uygulandığı durumlarda, tüm RGB kanallara uygulamaktan çok daha başarılı sonuçlar elde etmemizi sağlar.  CLAHE algoritması uygulanırken 2 parametre önemlidir. Birincisi clipLimit parametres...

Java Process Çıktısı Türkçe Karakter Sorunu

Merhaba arkadaşlar. Bildiğiniz gibi Java'da bir process oluşturmak için ProcessBuilder sınıfından yararlanıyoruz. Oluşturduğumuz process eğer çıktı üretiyorsa bu çıktıyı okuyabiliyoruz. Ancak bu çıktı Türkçe karakter içeriyorsa, biz bu çıktıyı okuduğumuz zaman düzgün bir şekilde elde edemiyoruz. Daha doğrusu kodlama Türkçe'ye göre yapılmadığı için (ş,ç,ğ,ı,ü,ö) karakterleri farklı bir şekilde ekranda görüntüleniyor. Öncelikle sorunu gözle görelim ve bunu çözmeye çalışalım. Aşağıda ping atmak üzere yazdığım bir program var. Ping atabilmek için bir process oluşturuyorum ve çıktıları ekrana yazıyorum. İşletim sistemimi Türkçe kullandığım için çıktı da Türkçe ifadeler geçiyor.