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() >=0 )
int data = in.read();
else if( in.read() == -1 )
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.