Compare commits
4 Commits
fixingConn
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d5749ca71 | ||
|
|
78d67a32eb | ||
|
|
bf52cfa229 | ||
|
|
41242bf3ed |
@@ -9,9 +9,13 @@ import java.util.ArrayList;
|
||||
|
||||
|
||||
class Worker extends Thread {
|
||||
String HOSTNAME;
|
||||
int PORT;
|
||||
Socket socket;
|
||||
String[] pixelArray;
|
||||
public Worker(String HOSTNAME, int PORT, String[] pixelArray) {
|
||||
this.HOSTNAME = HOSTNAME;
|
||||
this.PORT = PORT;
|
||||
try {
|
||||
this.socket = new Socket(HOSTNAME, PORT);
|
||||
} catch (IOException e) {
|
||||
@@ -20,15 +24,21 @@ class Worker extends Thread {
|
||||
this.pixelArray = pixelArray;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
while(true) {
|
||||
for(int i = 0; i < pixelArray.length; i++) {
|
||||
byte[] payload = pixelArray[i].getBytes();
|
||||
try {
|
||||
try {
|
||||
for(int i = 0; i < pixelArray.length; i++) {
|
||||
byte[] payload = pixelArray[i].getBytes();
|
||||
socket.getOutputStream().write(payload);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
try {
|
||||
this.socket = new Socket(HOSTNAME, PORT);
|
||||
} catch (IOException i) {
|
||||
i.printStackTrace();
|
||||
}
|
||||
System.out.println(this.getId() + "just dies. Trying again...");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -47,7 +57,7 @@ class Main
|
||||
return null;
|
||||
}
|
||||
|
||||
private static String[] prepareArray(BufferedImage image, int xOffset, int yOffset) {
|
||||
private static ArrayList<String> prepareArray(BufferedImage image, int xOffset, int yOffset) {
|
||||
|
||||
int width = image.getWidth();
|
||||
int height = image.getHeight();
|
||||
@@ -69,13 +79,28 @@ class Main
|
||||
}
|
||||
}
|
||||
}
|
||||
String[] payloadArray = new String[pixelArray.size()];
|
||||
/*String[] payloadArray = new String[pixelArray.size()];
|
||||
for(int i = 0; i < payloadArray.length; i++)
|
||||
{
|
||||
payloadArray[i] = pixelArray.get(i);
|
||||
}
|
||||
|
||||
return payloadArray;
|
||||
return payloadArray;*/
|
||||
return pixelArray;
|
||||
}
|
||||
|
||||
public static String[] prepareThreadArray(ArrayList<String> fullArray, int threadNumber, int threadCount)
|
||||
{
|
||||
int count = 0;
|
||||
int arrayStart = (threadNumber*fullArray.size())/threadCount;
|
||||
int arrayEnd = ((threadNumber+1)*fullArray.size())/threadCount;
|
||||
String[] threadArray = new String[arrayEnd-arrayStart];
|
||||
for(int i = arrayStart; i < arrayEnd; i++)
|
||||
{
|
||||
threadArray[count] = fullArray.get(i);
|
||||
count++;
|
||||
}
|
||||
return threadArray;
|
||||
}
|
||||
|
||||
//Syntax blabla.jar x y Hostname Port Image.png
|
||||
@@ -84,41 +109,23 @@ class Main
|
||||
final String HOSTNAME = args[2];
|
||||
final int xOffset = Integer.parseInt(args[0]);
|
||||
final int yOffset = Integer.parseInt(args[1]);
|
||||
final String imageName = args[4];
|
||||
int threadCount = Integer.parseInt(args[4]);
|
||||
final String imageName = args[5];
|
||||
|
||||
// Read the PNG file
|
||||
BufferedImage image = processImage(imageName);
|
||||
String[] pixelArray = prepareArray(image, xOffset, yOffset);
|
||||
ArrayList<String> fullArray = prepareArray(image, xOffset, yOffset);
|
||||
ArrayList<Worker> workerList = new ArrayList<>();
|
||||
|
||||
Worker worker0 = new Worker(HOSTNAME, PORT, pixelArray);
|
||||
Worker worker1 = new Worker(HOSTNAME, PORT, pixelArray);
|
||||
Worker worker2 = new Worker(HOSTNAME, PORT, pixelArray);
|
||||
Worker worker3 = new Worker(HOSTNAME, PORT, pixelArray);
|
||||
Worker worker4 = new Worker(HOSTNAME, PORT, pixelArray);
|
||||
Worker worker5 = new Worker(HOSTNAME, PORT, pixelArray);
|
||||
Worker worker6 = new Worker(HOSTNAME, PORT, pixelArray);
|
||||
Worker worker7 = new Worker(HOSTNAME, PORT, pixelArray);
|
||||
for(int i = 0; i < threadCount; i++)
|
||||
{
|
||||
String[] threadArray = prepareThreadArray(fullArray, i, threadCount);
|
||||
workerList.add(new Worker(HOSTNAME, PORT, threadArray));
|
||||
}
|
||||
|
||||
|
||||
worker0.start();
|
||||
worker1.start();
|
||||
worker2.start();
|
||||
worker3.start();
|
||||
worker4.start();
|
||||
worker5.start();
|
||||
worker6.start();
|
||||
worker7.start();
|
||||
|
||||
/*try {
|
||||
Socket socket = new Socket(HOSTNAME, PORT);
|
||||
while(true) {
|
||||
for(int i = 0; i < pixelArray.length; i++) {
|
||||
byte[] payload = pixelArray[i].getBytes();
|
||||
socket.getOutputStream().write(payload);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}*/
|
||||
for(int i = 0; i < threadCount; i++)
|
||||
{
|
||||
workerList.get(i).start();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user