• Java socket programming – 2 –

  • Merhabalar arkadaslar bu kisimda ” Java socket programming – 1 – ” de anlatmaya basladigim daha cok kavramlardan bahsettigim konuya devam edip kucuk bir uygulama yapicaz. Kucuk bir instant messaging programi dusunelim oncelikle iki tane ayri kod parcamiz olucak birisi Server.java digeride Client.java iclerinde bircok class ve interface icermekteler.

    Server.java>>

    Bu kisimda Server kisminda neler oluyor ondan bahsedelim Server sinifimizin runServer adli bir methodu olcak ve bu surekli sonsuz dongu halinde ” while(true)” kendi methodlarini isleyecek . Methodlari neler dersek waitForConnection(), getStreams(), processConnection(); closeConnection(); evet 4 tane methot var server kismi bunlardan ibaret hadi simdi bu methodlarin icini dolduralim oncelikle

    server = new ServerSocket(5000, 100);

    bu parcacik su ise yaramaktadir, server port numarasi 5000 olarak ayarladik buna baglanan butun client larinda port numaralari 5000 olmali, yanindaki 100 de ayni anda en fazla kac client baglanabilecegini gostermektedir. 100 den sonraki client request ine cevap alamicaktir.

    private void waitForConnection() throws IOException {

    displayArea.setText(“Waiting for connection\n”); connection=server.accept(); displayArea.append(“Connection”+counter+”received from”+connection.getInetAddress().getHostName());

    }

    Evet burada connection olarak gordugumuz Socket sinifinin instance’idir. runServer altinda ilk calisan kod bu oldugundan bi client baglanana kadar “Waiting for connection” modunda kalacak Server ve herhangi bir client dogru sartlar altinda baglanmayi basarirsa yukaridaki counter kacinci kez baglanildigini saymakta, getInetAdress te baglanan makinenin ip adresini aliyor yanindaki getHostName de o ip deki makinenin adini donderiyor .hespi bu sakina sikilmayin okumaya devam ediyoruz …

    private void getStreams() throws IOException {

    output = new ObjectOutputStream(connection.getOutputStream());

    output.flush(); input = new ObjectInputStream(connection.getInputStream());

    displayArea.append(“\n got i/o streams\n”);

    }

    burdada bir bakima iletisimi sagladigimiz iki kaynak arasindaki borulari dosuyoruz.Streamler araciligiyla iletisim kuruyoruz. output.flush() ne iser yariyor ? kendisi bufferlarda kalan bilgileri itelemekte , biliyoruz ki nerde i/o var orda arada buffer lar var ve transaction esnasinda data bu buffer larda kalabiliyor.

    processConnection da ise klasik file okuma yazma islemleri tarzi islemler yapilmakta ve ardindan sistem tutarliligi adina connection kapatiliyor. Evet bu yazimda Server kismindan bahsetmeye calistim diger yazimda Client kisminda neler oldugunada deginecegim .

    Esen Kalin


  • Comments: No Category: Java, Programlama
  • Tags: , ,

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes