Loading [MathJax]/extensions/Safe.js
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

Infix to postfix dönüşümü

Infix to postfix dönüşümü, operatorün ortada olduğu a+b yazım şeklini operatorün sonda olduğu ab+ yazım şekline dönüştürme işlemidir. Bu yazıda iki şekilde dönüşümden bahsedeceğim:   1) Stack yapısı kullanarak dönüştürme 2) Kağıt üstünde el ile dönüştürme    Infix gösterimi, bizler için kolay bir gösterim olsa da makineler için öyle değildir. İfadeyi okurken a + b * c işleminde önce b ile c yi çarpıp sonra da a ile toplamayı kolay bir şekilde yapabiliriz çünkü bizim ifadeyi sıra ile adım adım giderek okuma zorunluluğumuz yok. Önce b*c nin öncelikle olduğunu görerek oradan başlar, sonra a ile kolayca toplarız.

Python Soket Programlama

Merhaba arkadaşlar. Bugün sizlerle birlikte Python'da socket programlama yapacağız. Bunun için Python da socket kütüphanesini kullanacağız. Peki nedir bu socket programlama? Soket programlama, sizin iki program arası yada iki bilgisayar arası iletişim kurmanızı sağlar. İşte bizde bugün iki programımızı birbiri ile haberleştireceğiz. Bunun için elimizde iki program olacak. Birinci program,mesaj bekleyen program olacak, diğeri ise mesaj gönderen program.