Advertisement
SkolaRajakAndroid

CHAT- Thread-Android

Oct 1st, 2015
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.77 KB | None | 0 0
  1. package com.example.snovak.testapp;
  2.  
  3. import java.io.DataInputStream;
  4. import java.io.DataOutputStream;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.OutputStream;
  8. import java.net.Socket;
  9.  
  10. /**
  11.  * Created by snovak on 28.9.2015.
  12.  */
  13. public class ThreadZaSlanjePoruke extends Thread {
  14.  
  15.  
  16.  
  17.     // server ce uvek biti na 1337 , po dogovoru
  18.     private static final int SERVER_PORT = 1337;
  19.     // IP adresu servera moramo da dobijemo od korisnika
  20.     // kroz edit text
  21.     private String ipServera;
  22.     // poruka koja se salje serveru
  23.     private String poruka;
  24.  
  25.  
  26.     private boolean imaStaDaSalje = false;
  27.  
  28.  
  29.  
  30.  
  31.     @Override
  32.     public void run() {
  33.  
  34.         // THREAD JE STALNO AKTIVAN
  35.         // da ne bi preopteretili procesor
  36.         // thread kada ode na kraj while petlje
  37.         // odspava - izbleji pola sekunde i tada ne trosi procesor
  38.         // nakon pola sekunde se probudi i proveri da li ima neceg da se salje
  39.         while(true) {
  40.             if(imaStaDaSalje) {
  41.                 posaljiPoruku();
  42.             }
  43.  
  44.             // kad dodjes na kraj petlje, malo odspavaj
  45.             try {
  46.                 Thread.sleep(500); // pola sekunde
  47.             } catch (InterruptedException e) {
  48.                 e.printStackTrace();
  49.             }
  50.         }
  51.  
  52.     }
  53.  
  54.     /**
  55.      * Salje poruku na datu adresu
  56.      * @param ipServera - adresa java servera na PC-u
  57.      * @param poruka - tekst koji ce biti poslat i ispisan na serverskoj eclipse konzoli
  58.      */
  59.     public void posaljiPoruku (String ipServera, String poruka) {
  60.         this.poruka = poruka;
  61.         this.ipServera = ipServera;
  62.         // stavimo ovo na true, da bi thread znao da treba da posalje nesto serveru
  63.         imaStaDaSalje = true;
  64.     }
  65.  
  66.     public void zaustaviThread() {
  67.         // vreme je da ovaj Thread umre
  68.         Thread.currentThread().interrupt();
  69.     }
  70.  
  71.  
  72.     private void posaljiPoruku(){
  73.         // otvori novi socket
  74.         // posalji KUL poruku
  75.         // zatvori konekciju
  76.         // UMRI
  77.         try {
  78.  
  79.             if(imaStaDaSalje) {
  80.                 Socket vezaSaServerom = new Socket(ipServera, SERVER_PORT);
  81.                 OutputStream outToServer = vezaSaServerom.getOutputStream();
  82.                 // OTVARAMO tok  PODATAKA KROZ SOCKET
  83.                 DataOutputStream out = new DataOutputStream(outToServer);
  84.                 // SALJEMO PORUKU NASU
  85.                 out.writeUTF(poruka);
  86.                 // kraj veze, cao cao
  87.                 vezaSaServerom.close();
  88.                 // stavljamo na FALSE promenljivu imaStaDaSeSalje
  89.                 // jer vise nema sta da se salje
  90.                 imaStaDaSalje = false;
  91.  
  92.             }
  93.         } catch (IOException e) {
  94.             e.printStackTrace();
  95.         }
  96.     }
  97.  
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement