50 lines
1.7 KiB
Java
50 lines
1.7 KiB
Java
package mplayer4anime.IPC;
|
|
|
|
import mplayer4anime.Controller;
|
|
|
|
import java.io.*;
|
|
import java.net.InetAddress;
|
|
import java.net.ServerSocket;
|
|
import java.net.Socket;
|
|
|
|
// TODO: Rewrite and remove. Or just remove.
|
|
public class SingleInstanceHandler implements Runnable{
|
|
|
|
private ServerSocket servSock;
|
|
|
|
public SingleInstanceHandler(Controller mainCntrl, String argument){
|
|
int PORT = 65042;
|
|
// Creating client server socket;
|
|
try {
|
|
servSock = new ServerSocket(PORT, 10, InetAddress.getLocalHost());
|
|
Thread ssp = new Thread(new ServerSocketProvider(mainCntrl, servSock));
|
|
ssp.start();
|
|
} catch (IOException e) {
|
|
if (argument != null){
|
|
// Creating client socket;
|
|
try {
|
|
Socket clientSocket = new Socket(InetAddress.getLocalHost(), PORT);
|
|
OutputStream outStream = clientSocket.getOutputStream();
|
|
OutputStreamWriter outStreamWriter = new OutputStreamWriter(outStream);
|
|
outStreamWriter.write(argument + "\n");
|
|
outStreamWriter.flush();
|
|
outStream.close();
|
|
clientSocket.close();
|
|
} catch (IOException ex){
|
|
System.out.println("Internal issue: unable to create client socket.");
|
|
}
|
|
}
|
|
else
|
|
System.out.println("Application is already running.");
|
|
System.exit(0);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void run() {
|
|
while (! Thread.currentThread().isInterrupted());
|
|
try {
|
|
servSock.close();
|
|
} catch (IOException ignore) {}
|
|
}
|
|
} |