Bağlantı Sınıfı
Baglanti sınıfı chat server sınıfı tarafından oluşturulur ve aktif bağlantılar arasındaki iletişimi kontrol eder.
import java.net.*;
import java.io.*;
class baglanti extends Thread
{
...
}
Her bağlantı talebi için baglanti nesnesi oluşturulur. Bu nesne bağlantı talebini alır ve bağlantı sonuna kadar çalıştırır. Bundan dolayı her bağlantı kendi başına bir thread olmalıdır.
protected Socket istemci;
protected DataInputStream in;
protected PrintStream out;
protected chatserver server;
istemci Chat Server 'dan Socket i alır. in ve out adlı Giriş/Çıkış streamleri bu nesne ile bağlantılı olacaklardır. server Chat Server objesini gösterir.
public baglanti(chatserver server, Socket istemci)
{
this.server=server;
this.istemci=istemci;
try
{
in = new DataInputStream(istemci.getInputStream());
out = new PrintStream(istemci.getOutputStream());
} catch (IOException e)
{
try
{
istemci.close();
} catch (IOException e2)
{System.err.println("Stream oluşturulurken hata : " + e);
return;
}
}
this.start();
}
Baglanti sınıfının başlangıcında (constructor) parametre olarak alınan server ve istemci değişkene saklanıyor. Sonra bir giriş ve bir çıkış stream i oluşturulmak isteniyor. Bu sırada oluşacak hatalar catch() tarafından yakalanıyor.
public **** run()
{
String satir;
try
{
while(true)
{
satir=in.readLine();
if(satir!=null)
server.mesajgonder(satir);
}
} catch (IOException e)
{
System.out.println("Hata:" + e);
}
}
Baglanti sınıfının asıl çalışan kısmı gelen mesajları aktif bağlantılara gönderen sonsuz bir döngüden oluşuyor. Mesaj göndermek için chat server sınıfını mesajgonder metodu kullanılıyor.
Baglanti sınıfı chat server sınıfı tarafından oluşturulur ve aktif bağlantılar arasındaki iletişimi kontrol eder.
import java.net.*;
import java.io.*;
class baglanti extends Thread
{
...
}
Her bağlantı talebi için baglanti nesnesi oluşturulur. Bu nesne bağlantı talebini alır ve bağlantı sonuna kadar çalıştırır. Bundan dolayı her bağlantı kendi başına bir thread olmalıdır.
protected Socket istemci;
protected DataInputStream in;
protected PrintStream out;
protected chatserver server;
istemci Chat Server 'dan Socket i alır. in ve out adlı Giriş/Çıkış streamleri bu nesne ile bağlantılı olacaklardır. server Chat Server objesini gösterir.
public baglanti(chatserver server, Socket istemci)
{
this.server=server;
this.istemci=istemci;
try
{
in = new DataInputStream(istemci.getInputStream());
out = new PrintStream(istemci.getOutputStream());
} catch (IOException e)
{
try
{
istemci.close();
} catch (IOException e2)
{System.err.println("Stream oluşturulurken hata : " + e);
return;
}
}
this.start();
}
Baglanti sınıfının başlangıcında (constructor) parametre olarak alınan server ve istemci değişkene saklanıyor. Sonra bir giriş ve bir çıkış stream i oluşturulmak isteniyor. Bu sırada oluşacak hatalar catch() tarafından yakalanıyor.
public **** run()
{
String satir;
try
{
while(true)
{
satir=in.readLine();
if(satir!=null)
server.mesajgonder(satir);
}
} catch (IOException e)
{
System.out.println("Hata:" + e);
}
}
Baglanti sınıfının asıl çalışan kısmı gelen mesajları aktif bağlantılara gönderen sonsuz bir döngüden oluşuyor. Mesaj göndermek için chat server sınıfını mesajgonder metodu kullanılıyor.