Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.loneranger.ser;
- import android.app.Activity;
- import android.os.Bundle;
- import android.widget.TextView;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.PrintWriter;
- import java.net.InetAddress;
- import java.net.NetworkInterface;
- import java.net.ServerSocket;
- import java.net.Socket;
- import java.net.SocketException;
- import java.util.Enumeration;
- public class MainActivity extends Activity {
- TextView ip;
- TextView msg;
- String data = "";
- ServerSocket httpServerSocket;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- ip = (TextView) findViewById(R.id.infoip);
- msg = (TextView) findViewById(R.id.msg);
- ip.setText(getIpAddress() + ":"
- + 8080 + "n");
- Server server = new Server();
- server.start();
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- if (httpServerSocket != null) {
- try {
- httpServerSocket.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- private String getIpAddress() {
- String ip = "";
- try {
- Enumeration<NetworkInterface> enumNetworkInterfaces = NetworkInterface
- .getNetworkInterfaces();
- while (enumNetworkInterfaces.hasMoreElements()) {
- NetworkInterface networkInterface = enumNetworkInterfaces
- .nextElement();
- Enumeration<InetAddress> enumInetAddress = networkInterface
- .getInetAddresses();
- while (enumInetAddress.hasMoreElements()) {
- InetAddress inetAddress = enumInetAddress.nextElement();
- if (inetAddress.isSiteLocalAddress()) {
- ip += "IP: "
- + inetAddress.getHostAddress() + "n";
- }
- }
- }
- } catch (SocketException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- ip += "Something Wrong! " + e.toString() + "n";
- }
- return ip;
- }
- private class Server extends Thread {
- @Override
- public void run() {
- Socket socket = null;
- try {
- httpServerSocket = new ServerSocket(8888);
- while(true){
- socket = httpServerSocket.accept();
- HttpResponseThread httpResponseThread =
- new HttpResponseThread(
- socket);
- httpResponseThread.start();
- }
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- private class HttpResponseThread extends Thread {
- Socket socket;
- HttpResponseThread(Socket socket){
- this.socket = socket;
- }
- @Override
- public void run() {
- BufferedReader BReader;
- PrintWriter printer;
- String request;
- try { InputStream inputStream = socket.getInputStream();
- BReader = new BufferedReader(new InputStreamReader(inputStream));
- request = BReader.readLine();
- Thread.sleep(500);
- printer = new PrintWriter(socket.getOutputStream(), true);
- printer.print("hello laundu");
- printer.flush();
- String ip123=socket.getInetAddress().toString();
- printer.close();
- BReader.close();
- socket.close();
- data += "Request of " + request
- + " from "+ ip123 + "n";
- MainActivity.this.runOnUiThread(new Runnable() {
- @Override
- public void run() {
- msg.setText(data);
- }
- });
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- return;
- }
- }
- }
- mport android.os.AsyncTask;
- import android.widget.TextView;
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.ByteArrayOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.io.UnsupportedEncodingException;
- import java.net.Socket;
- import java.net.UnknownHostException;
- public class Client extends AsyncTask<Void, Void, Void> {
- String dstAddress;
- int dstPort;
- String response = "";
- TextView textResponse;
- MainActivity activity;
- OutputStream outputStream;
- BufferedReader BReader;
- String request;
- Client(String addr, int port, TextView textResponse) {
- dstAddress = addr;
- dstPort = port;
- this.textResponse=textResponse;
- this.activity=activity;
- }
- @Override
- protected Void doInBackground(Void... arg0) {
- Socket socket = null;
- try {
- socket = new Socket(dstAddress, dstPort);
- Server server = new Server(socket);
- server.start();
- PrintWriter out = new PrintWriter(new BufferedWriter(
- new OutputStreamWriter(socket.getOutputStream())),
- true);
- out.print("futfujb");
- out.flush();
- /*
- * notice: inputStream.read() will block if no data return
- */
- } catch (UnknownHostException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- response = "UnknownHostException: " + e.toString();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- response = "IOException: " + e.toString();
- } /*finally {
- if (socket != null) {
- try {
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }*/
- return null;
- }
- @Override
- protected void onPostExecute(Void result) {
- textResponse.setText(response);
- super.onPostExecute(result);
- }
- private class Server extends Thread {
- Socket socket;
- Server(Socket socket)
- {
- this.socket=socket;
- }
- @Override
- public void run() {
- try { //Thread.sleep(500);
- ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(
- 1024);
- byte[] buffer = new byte[1024];
- int bytesRead;
- InputStream inputStream = socket.getInputStream();
- if(inputStream.available()>0)
- {
- while ((bytesRead = inputStream.read(buffer)) != -1) {
- byteArrayOutputStream.write(buffer, 0, bytesRead);
- response += byteArrayOutputStream.toString("UTF-8");
- }
- }
- inputStream.close();
- socket.close();
- }
- catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement