diff --git a/src/main/java/com/rarchives/ripme/App.java b/src/main/java/com/rarchives/ripme/App.java index 4749d7c23..07e6af8af 100644 --- a/src/main/java/com/rarchives/ripme/App.java +++ b/src/main/java/com/rarchives/ripme/App.java @@ -1,13 +1,11 @@ package com.rarchives.ripme; import java.awt.*; -import java.io.File; -import java.io.IOException; -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.FileNotFoundException; +import java.io.*; import java.net.MalformedURLException; +import java.net.ServerSocket; +import java.net.Socket; import java.net.URL; import java.util.Arrays; import java.util.List; @@ -44,6 +42,33 @@ public class App { public static String stringToAppendToFoldername = null; private static final History HISTORY = new History(); + public static class IPCThread implements Runnable { + public void run() { + String dataFromProcess; + String capitalizedSentence; + try { + ServerSocket welcomeSocket = new ServerSocket(6789); + while (true) { + Socket connectionSocket = welcomeSocket.accept(); + BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream())); + + DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream()); + dataFromProcess = inFromClient.readLine(); + System.out.println("Received: " + dataFromProcess); + capitalizedSentence = dataFromProcess.toUpperCase() + 'n'; + outToClient.writeBytes(capitalizedSentence); + MainWindow.queueListModel.add(MainWindow.queueListModel.size(), dataFromProcess); + welcomeSocket.close(); + } + } catch(IOException e) { + e.printStackTrace(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + } + /** * Where everything starts. Takes in, and tries to parse as many commandline arguments as possible. * Otherwise, it launches a GUI. @@ -73,6 +98,11 @@ public static void main(String[] args) throws MalformedURLException { if (GraphicsEnvironment.isHeadless() || args.length > 0) { handleArguments(args); } else { + logger.info("Starting IPC thread..."); + IPCThread ipcThread = new IPCThread(); + Thread t = new Thread(ipcThread); + t.start(); + logger.info("IPC thread started"); if (SystemUtils.IS_OS_MAC_OSX) { System.setProperty("apple.laf.useScreenMenuBar", "true"); System.setProperty("com.apple.mrj.application.apple.menu.about.name", "RipMe"); diff --git a/src/main/java/com/rarchives/ripme/ui/MainWindow.java b/src/main/java/com/rarchives/ripme/ui/MainWindow.java index e97e915ad..3f18806bf 100644 --- a/src/main/java/com/rarchives/ripme/ui/MainWindow.java +++ b/src/main/java/com/rarchives/ripme/ui/MainWindow.java @@ -100,7 +100,7 @@ public final class MainWindow implements Runnable, RipStatusHandler { // Queue public static JButton optionQueue; private static JPanel queuePanel; - private static DefaultListModel queueListModel; + public static DefaultListModel queueListModel; // Configuration private static JButton optionConfiguration;