1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package de.tudarmstadt.informatik.hostage.sync.wifi_direct;
- import android.util.Log;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.io.OutputStream;
- import java.net.ServerSocket;
- import java.net.Socket;
- /**
- * Created by Julien on 07.01.2015.
- */
- public class WiFiP2pServerTask extends BackgroundTask {
- private ServerSocket serverSocket;
- @Override
- public void interrupt(boolean b){
- super.interrupt(b);
- if (b && this.serverSocket != null) {
- try {
- this.serverSocket.close();
- } catch (IOException e) {
- Log.e("WiFiP2pServerTask", e.getMessage());
- }
- }
- }
- public WiFiP2pServerTask(BackgroundTaskCompletionListener l){
- super(l);
- }
- @Override
- public boolean performInBackground(){
- while (!this.isInterrupted()){
- try {
- this.serverSocket = new ServerSocket(8988);
- Log.d("WiFiP2pServerTask", "Server: Socket opened");
- Socket client = this.serverSocket.accept();
- Log.d("WiFiP2pServerTask", "Server: connection done");
- this.handleConnection(client, this.serverSocket);
- client.close();
- serverSocket.close();
- } catch (ClassNotFoundException e){
- Log.e("WiFiP2pServerTask", e.getMessage());
- return false;
- } catch (IOException e) {
- Log.e("WiFiP2pServerTask", e.getMessage());
- return false;
- }
- }
- return true;
- }
- private void handleConnection(Socket client, ServerSocket server) throws IOException, ClassNotFoundException {
- InputStream is = client.getInputStream();
- ObjectInputStream ois = new ObjectInputStream(is);
- OutputStream os = client.getOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(os);
- Object obj = ois.readObject();
- while (obj != null && obj instanceof WiFiP2pSerializableObject) {
- WiFiP2pSerializableObject receivedObj = ( WiFiP2pSerializableObject) obj;
- obj = null;
- WiFiP2pSerializableObject toSend = this.handleReceivedObject(receivedObj);
- if (toSend != null) {
- oos.writeObject(toSend);
- oos.flush();
- oos.reset();
- }
- obj = ois.readObject();
- }
- oos.close();
- os.close();
- ois.close();
- is.close();
- }
- public WiFiP2pSerializableObject handleReceivedObject(WiFiP2pSerializableObject receivedObj){
- return null;
- }
- }
|