Java Soket Programlama ile Mesajlaşma Uygulamasi

ilyasaglar tarafından tarihinde yayınlandı

Bu uygulama JAVA’nın genel yapısı ve ağ ortamında dağıtık programlama (client/server) için Java’nın nasıl kullanıldığını görmek amaçlanmıştır

Bir dağıtık sistem, kurumsal bir şirketteki yapılanmaya benzetilebilir. Şirket kendi içerisinde alt birimlere ayrılmış, iş paylaşımı yapmış olsa da, müşteri şirket ile muhatap olmaktadır. Yandaki şekilde kullanıcı ana bilgisayar ile muhatap olmakta, ana bilgisayar işi alt bilgisayarlara bölüştürmektedir. Sonucu kullanıcıya yine ana bilgisayar gösterir.

 

Dağıtık programlama bir işin birden fazla bilgisayar tarafından yapılmasını hedefler. Ortada
birden fazla eleman varsa, bunların birlikte çalışabilmesi için aralarında haberleşmesi gerekir.
Dağıtık programlama temel olarak sistemdeki bilgisayarların haberleşmesine dayalıdır.Dağıtık programlama deneyini gerçekleştirmek için öncelikle kullanacağımız bilgisayarların aynı ağa bağlı olması gereklidir. Aşağıdaki şekile bakarak sistemin çalışma şeklini daha iyi anlayabiliriz

socket programming1- Server bilgisayarda bir adet ServerSocket nesnesi oluşturularak müsait bir port
dinlenir (şekilde port numarası 1992 seçilmiş).

2- Client bilgisayarda bir adet Socket nesnesi oluşturularak server bilgisayarın açılan
portuna bağlantı denemesinde bulunulur (ipAdresi,1992 parametreleri ile).

3- Porta ulaşılınca 4. Adıma geçilir.

4- ServerSocket nesnesi accept() fonksiyonu aracılığıyla boş bir port açarak gelen isteği
bu port ile eşleştirir.

5- İki bilgisayar açılan portlar aracılığıyla iletişim sağlar (2071 ve 5064 portları).

 

Yukarıdaki adımları gerçekleştirmek için server tarafında yazılması gereken Java kodu
aşağıdaki gibidir:

// Belirtilen PORT_NUMARASI‘nı yöneten yeni bir socket nesnesi ouşturulur (Adım 1).
ServerSocket soket = new ServerSocket(PORT_NUMARASI);
System.out.println(“Baglanti Bekleniyor”);

// Belirtilen PORT_NUMARASI’nı dinleyerek yeni bağlantı bekler (Adım 4).
Socket baglanti = soket.accept();
System.out.println(“Baglanti Gerceklesti”);

Client tarafına ise aşağıdaki kod yazılarak bağlantı sağlanabilir.
Socket baglanti = new Socket(IP_ADRESI, PORT_NUMARASI);

 

Server ile Client arasındaki bağlantı kurulduktan sonra her iki taraf da sahip oldukları soket
nesneleri (baglanti) yardımıyla birbiriyle veri alışverişi yapabilirler.

Veri Gönderimi:
PrintWriter output = new PrintWriter(baglanti.getOutputStream(),true);
output.println(“Gönderilecek Mesaj”);

 

Veri Alımı:
BufferedReader in = new BufferedReader(new InputStreamReader(baglanti.getInputStream()));
in.readLine();

 

Yazımızı uygulamaya dökecek olursak; Bir server ve birden fazla kullanıcısı bulunan bir mesajlaşma uygulaması yapacağız. Java soket programlama kullanarak gerçekleştireceğimiz uygulamamızda Server olarak kendi bilgisayarımızı kullanacağız ve kullanıcı bilgisayarlarını aynı ağa bağlı olması gerekmektedir.

 

ClientChat.java dosyamızın kodları şu şekildedir.

 

ServerChat.java dosyamızın kodları şu şekildedir.

Projenin kaynak kodlarının tamamına buradan ulaşabilirsiniz. Uygulamanın nasıl calıştığını görmek için videosunun buradan izleyebilirsiniz. Projeyi çalıştırırken öncelikle ServerChat.java dosyası çalıştırılır ve daha sonra ClientChat.java dosyası calıştırılmalıdır.

 

Kaynak: Fırat Üniversitesi Ders Dökümanları ve github.com

 

 


0 yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir