3 Commits

Author SHA1 Message Date
darkress
bdcf7bf13d Working slicing 2023-06-11 03:44:10 +02:00
darkress
bf52cfa229 Variable threadcount 2023-06-10 17:15:26 +02:00
darkress
41242bf3ed some try catching (#1)
Co-authored-by: Darkress <30271678+DarkressX@users.noreply.github.com>
Reviewed-on: darkress/PixelFloodClient#1
2023-06-10 16:44:43 +02:00

View File

@@ -57,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();
@@ -79,13 +79,26 @@ 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)
{
String[] threadArray = new String[fullArray.size()/threadCount];
int count = 0;
for(int i = (threadNumber*fullArray.size())/threadCount; i < ((threadNumber+1)*fullArray.size())/threadCount; i++)
{
threadArray[count] = fullArray.get(i);
count++;
}
return threadArray;
}
//Syntax blabla.jar x y Hostname Port Image.png
@@ -94,41 +107,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();
}
}
}