Advertisement
dmitrij999

client.java

Apr 22nd, 2016
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.49 KB | None | 0 0
  1. package com.pmeter.dmitrij999.photometer;
  2.  
  3. import android.content.Context;
  4. import android.util.Log;
  5. import android.widget.Toast;
  6.  
  7. import java.io.BufferedReader;
  8. import java.io.BufferedWriter;
  9. import java.io.InputStreamReader;
  10. import java.io.OutputStreamWriter;
  11. import java.io.PrintWriter;
  12. import java.net.ConnectException;
  13. import java.net.InetAddress;
  14. import java.net.Socket;
  15.  
  16. /**
  17.  * Created by dmitrij999 on 15.04.16.
  18.  */
  19. public class client {
  20.     private String serverMessage;
  21.     public static String SERVERIP = "192.168.1.100"; //your computer IP address
  22.     public static int SERVERPORT = 80;
  23.     private OnMessageReceived mMessageListener = null;
  24.     private boolean mRun = false;
  25.     public static boolean errors = false;
  26.  
  27.     PrintWriter out;
  28.     BufferedReader in;
  29.  
  30.     /**
  31.      *  Constructor of the class. OnMessagedReceived listens for the messages received from server
  32.      */
  33.     public client(OnMessageReceived listener) {
  34.         mMessageListener = listener;
  35.     }
  36.  
  37.     public void Set(String ip) {
  38.         SERVERIP = ip;
  39.         //Log.d("IP", SERVERIP);
  40.         //SERVERPORT = port;
  41.     }
  42.     public static boolean getError() {
  43.         return errors;
  44.     }
  45.     /**
  46.      * Sends the message entered by client to the server
  47.      * @param message text entered by client
  48.      */
  49.     public void sendMessage(String message){
  50.  
  51.         if (out != null && !out.checkError()) {
  52.             out.println(message);
  53.             out.flush();
  54.         }
  55.     }
  56.  
  57.     public void stopClient(){
  58.         mRun = false;
  59.  
  60.     }
  61.  
  62.  
  63.  
  64.     public void run() {
  65.  
  66.         mRun = true;
  67.  
  68.         try {
  69.             //here you must put your computer's IP address.
  70.             InetAddress serverAddr = InetAddress.getByName(SERVERIP);
  71.  
  72.             Log.e("TCP Client", "C: Connecting...");
  73.             //mMessageListener.messageReceived("Connecting...");
  74.             //
  75.             errors = false;
  76.             //create a socket to make the connection with the server
  77.             try {
  78.                 Socket socket = new Socket(serverAddr, SERVERPORT);
  79.                 try {
  80.  
  81.                     //send the message to the server
  82.                     out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
  83.  
  84.                     Log.e("TCP Client", "C: Sent.");
  85.                     //mMessageListener.messageReceived("Sent ");
  86.  
  87.                     Log.e("TCP Client", "C: Done.");
  88.                     errors = false;
  89.  
  90.                     //receive the message which the server sends back
  91.                     in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  92.  
  93.                     //in this while the client listens for the messages sent by the server
  94.                     while (mRun) {
  95.                         //Thread.sleep(300);
  96.  
  97.                         serverMessage = in.readLine();
  98.  
  99.                         if (serverMessage != null && mMessageListener != null) {
  100.                             //call the method messageReceived from MyActivity class
  101.                             mMessageListener.messageReceived(serverMessage);
  102.  
  103.                             Log.e("RESPONSE FROM SERVER", "S: Received Message: '" + serverMessage + "'");
  104.                             Screen.putRes(serverMessage);
  105.                         }
  106.  
  107.                         serverMessage = null;
  108.                     }
  109.  
  110.  
  111.  
  112.                 } catch (Exception e) {
  113.  
  114.                     Log.e("TCP", "S: Error", e);
  115.                     mMessageListener.messageReceived("Error " + e);
  116.                     errors = true;
  117.  
  118.  
  119.                 }
  120.  
  121.                 finally {
  122.                     //the socket must be closed. It is not possible to reconnect to this socket
  123.                     // after it is closed, which means a new socket instance has to be created.
  124.                     socket.close();
  125.                 }
  126.             } catch (ConnectException e) {
  127.                 Log.e("TCP", "C: Error", e);
  128.                 errors = true;
  129.                 Log.e("TCP", "Словили...");
  130.             }
  131.  
  132.  
  133.         } catch (Exception e) {
  134.  
  135.             Log.e("TCP", "C: Error", e);
  136.             errors = true;
  137.             mMessageListener.messageReceived("Error " + e);
  138.  
  139.         }
  140.  
  141.     }
  142.  
  143.  
  144.  
  145.  
  146.     //Declare the interface. The method messageReceived(String message) will must be implemented in the MyActivity
  147.     //class at on asynckTask doInBackground
  148.     public interface OnMessageReceived {
  149.         void messageReceived(String message);
  150.     }
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement