IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   Java (https://www.ircforumlari.net/java/)
-   -   Java ile Network programlama üzerine (https://www.ircforumlari.net/java/511896-java-ile-network-programlama-uzerine.html)

YazılımMimarı 12 Kasım 2012 11:02

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- Kodu:

Socket socket = new Socket("IP""PORT"); 

örnek ;

PHP- Kodu:

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- Kodu:

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- Kodu:

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.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 20:23.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net