Tekil Mesaj gösterimi
Alt 12 Kasım 2012, 11:02   #1
Çevrimdışı
YazılımMimarı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0)
IF Ticaret Yüzdesi:(%)
Java ile Network programlama üzerine




Merhaba bu yazım İF'e özel olsun.

Tabanı sohbet ve türevleri üzerine olduğu için sohbet tabanındaki teknoloji üzerine bir kaç satır kod karalayayım.

Temelinde bir sunucu ve buna bağlı istemcilerin oluşturduğu bir yapı üzerine inşa edilmiştir.

Web tarafında Java'nın hakim olduğu bir yapıdır da sebebi javanın güçlü bir dil olması tabiki en önemli özelliği platform bağımsız çalışmasıdır.

Bu kadar ön bilgiden sonra ; Java'nın Network haberleşmede kullandığı bir kütüphane olan java.net.socket ile basit bir Server tanımı yapalım.

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
Socket socket = new Socket("IP""PORT"); 

örnek ;

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
Socket socket = new Socket("188.234.123.22"80); 

Bu socket yapısı ile 188.234.123.22 ip nolu sunucu üzerindeki 80 portuna bağlanırız tabiki port açık ise. Açık olduğunu düşünüp devam ediyorum.

OutputStream sınıfı ile Socket sınıfı ile bağlandığım sunucu üzerinden açık porttan data gönderebilirim. Nasıl ?

Data gönderimi için basit bir kod parçası ;

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
Socket socket = new Socket("188.234.123.22"80);
OutputStream out socket.getOutputStream();

out.write("Merhaba ...".getBytes());
out.flush();
out.close();

socket.close(); 

InputStream sınıfı ile Socket sınıfı ile bağlandığım sunucu üzerinden açık porttan data okuyabilirim. Nasıl ?

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
Socket socket = new Socket("188.234.123.22"80);
InputStream in socket.getInputStream();

if( 
in.read() >=)
int data in.read();
else if( 
in.read() == -)
System.out.println("Sunucu kapalı!");
in.close();
socket.close(); 

in.read() metodu -1 döndüğünde sunucunun kapalı olduğunu belirtir.

socket.close() metodu socket bağlantımızı kapatır.

Kodlar oldukça basit olduğu için anlaşılması kolay fakat, hataya açıktır. örneğin, try catch bloğu şarttır herhangi bir beklenmedik durum ile karşılaşıldığında bir istisna fırlatacak yapı ve bu istisnayı geri bildirim olarak alacağımız yapı bulunmamaktadır.

Daha sonra bunun üzerine bir kaç şey karalarım zaman bulursam.

[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Ek olarak şunu belirteyim. Java AWT ve Swing teknolojilerine artık yatırım yapmyıor. Eğer bu teknolojileri kullanıyorsanız yavaş yavaş yeni teknolojisi olan [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]
teknolojisine geçmenizi tavsiye ederim. applet'ten kurtulmak hem güvenlik açıklarından hemde yavaşlık ve web taraflı haberleşmesindeki sıkıntılardna kurtulmak demektir. yeni Web Tabanlı Chat programları FX teknolojisini barındırmak zorunda kalacaktır.

 
Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
sohbet odaları reklam ver Benimmekan Mobil Sohbet