Browse Source

stuff

tags/v0.2
mrbesen 2 years ago
parent
commit
79b608d156
8 changed files with 38 additions and 37 deletions
  1. +24
    -9
      Client/BesenBoincClient/src/Core/Starter.java
  2. +1
    -2
      Server/BesenBoincServer/src/Comunication/Client.java
  3. +7
    -1
      Server/BesenBoincServer/src/Comunication/Server.java
  4. +1
    -3
      Server/BesenBoincServer/src/Core/Program.java
  5. +1
    -11
      Server/BesenBoincServer/src/Job/JobManager.java
  6. +3
    -3
      Server/BesenBoincServer/src/Job/Worker.java
  7. +1
    -4
      test-factorial/BBTestprogram/src/Test.java
  8. +0
    -4
      test-primefinder/BBPrimeFinder/src/mrbesen/PrimeFinder.java

+ 24
- 9
Client/BesenBoincClient/src/Core/Starter.java View File

@@ -1,5 +1,7 @@
package Core;

import java.io.IOException;

import Comunication.Client;
import Job.Worker;

@@ -7,8 +9,8 @@ public class Starter {

public static void main(String args[]) {
System.out.println("Starting BesenBoincClient...");
System.out.println("user.dir: " + System.getProperty("user.dir"));
//parsing Arguments
String host = BB.host;
int port = BB.port;
if(args.length >= 1) {
@@ -20,8 +22,10 @@ public class Starter {
}
}
}
//try to connect
boolean run = true;
int lost_counter = 0;//ho often loast?
int lost_counter = 0;//how often lost. - higher value - longer wait time until reconnect is tried.
long lasttest = -1;
while(run) {
boolean tryagain = false;
@@ -39,17 +43,25 @@ public class Starter {
}

try {
Thread.yield();
Thread.sleep(500);
} catch(Exception e) {}
} catch(InterruptedException e) {}
}

System.out.println("Connecting to " + host + " on port: " + port);
//try to connect
System.out.print("Connecting to " + host + " on port: " + port + " ");
lasttest = System.currentTimeMillis();
try {
Client c = new Client(host, port, new Worker());
Worker worker = new Worker();
Client c;
try {
c = new Client(host, port, worker);//throws IOException on failed connection
} catch (IOException e) {
System.out.println("Failed");
throw new Exception(e);//do not print stack trace
}
c.run();
worker.start();//start worker Thread, only if connection is established
c.run();//manage connection
if(lost_counter > 0) {
int minus = (int) ((System.currentTimeMillis()-lasttest)/10000);//für alle 10 sekunden verbinung ein lost count weniger
@@ -58,11 +70,14 @@ public class Starter {
else
lost_counter -= minus;
}
System.out.println("Connection Lost!");
worker.stop();
} catch(IOException e) {
e.printStackTrace();
} catch(Exception e) {
//failed
lost_counter++;
}
System.out.println("Connection LOST!");
}
}
}

+ 1
- 2
Server/BesenBoincServer/src/Comunication/Client.java View File

@@ -5,7 +5,6 @@ import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client implements Runnable{
private Socket soc;
@@ -22,7 +21,7 @@ public class Client implements Runnable{
getStreams();
}

public Client(String addr, int port, PacketHandler hand) throws UnknownHostException, IOException {//client side constructor
public Client(String addr, int port, PacketHandler hand) throws IOException {//client side constructor
hold_connection = true;
handler = hand;
soc = new Socket(InetAddress.getByName(addr), port);//connect

+ 7
- 1
Server/BesenBoincServer/src/Comunication/Server.java View File

@@ -57,7 +57,13 @@ public class Server implements PacketHandler {
accept_new_connections = true;
System.out.println("Server is Listening on port " + port);
programthread = new Thread(prog, "Programm Thread");
programthread = new Thread(new Runnable() {
@Override
public void run() {
prog.run();
System.out.println("Program enqued " + prog.jobmanager.jobs_total() + " Jobs.");
}
}, "Programm Thread");
programthread.start();
System.out.println("Programm execution started");
} catch (IOException e) {

+ 1
- 3
Server/BesenBoincServer/src/Core/Program.java View File

@@ -6,7 +6,7 @@ import Job.Result.PartialResult;

public abstract class Program implements Runnable{

public JobManager jobmanager = new JobManager(this);
public JobManager jobmanager = new JobManager();
public void HandleResult(Result r) {
jobmanager.setdone(r.getJobId());
@@ -21,6 +21,4 @@ public abstract class Program implements Runnable{
}
public abstract void HandlePartialResult(PartialResult pres);

public abstract void requestnewjobs(int amount);
}

+ 1
- 11
Server/BesenBoincServer/src/Job/JobManager.java View File

@@ -10,7 +10,6 @@ import java.util.List;
import java.util.Scanner;

import Comunication.Server;
import Core.Program;
import Utils.StringUtils;

public class JobManager implements Iterator<Job>{
@@ -21,19 +20,13 @@ public class JobManager implements Iterator<Job>{
private List<Job> done = new ArrayList<Job>();//done jobs

private int jobcount = 0;
private Program prog;
public JobManager(Program prog) {
this.prog = prog;
}

private boolean isCompiling = false;

public void enque(Job newjob) {
jobcount++;
newjob.setId(jobcount);
enqued.add(newjob);
jobcount++;
update();
}
@@ -123,9 +116,6 @@ public class JobManager implements Iterator<Job>{
public void update() {//called from Server on new Client Connection
if(enqued.size() > 0 & !isCompiling & todo.size() < jobs_compiledtarget()) {//7 für jede connection vorrätig
startCompile();
} else if(enqued.size() < jobs_compiledtarget()) {
System.out.println("All jobs done.");
prog.requestnewjobs(jobs_compiledtarget() * 15);//mal nen par generieren
}
}

+ 3
- 3
Server/BesenBoincServer/src/Job/Worker.java View File

@@ -21,8 +21,8 @@ public class Worker implements PacketHandler, Runnable{
private Client client;
private long lastasked = System.currentTimeMillis();
private boolean run = true;
public Worker() {
public void start() {
Thread workerthread = new Thread(this, "Worker");
workerthread.start();
}
@@ -45,7 +45,7 @@ public class Worker implements PacketHandler, Runnable{
if(jobs.size()>0) {
System.out.print("Executing Job: " + jobs.get(0).getId());
Result r = justrun(jobs.get(0));
System.out.println("Done.");
System.out.println(" Done.");
if(r != null) {
client.send(new Data(r));
jobs.remove(0);

+ 1
- 4
test-factorial/BBTestprogram/src/Test.java View File

@@ -7,14 +7,11 @@ public class Test extends Program {
@Override
public void run() {
for(int c = 5; c < 1000; c++) {
String code = "import Job.Job;\nimport Job.Result;\nimport Job.Result.PartialResult;\nimport Job.Jobsrc;\npublic class A" + c + " extends Jobsrc {\n@Override\npublic Result run() {\ndouble i ="+c+";\nfor(int n = 2; n < " + c + ";n++){\n i *= n;\n}\n Result r = new Result();\nr.OutputConsole(\"!"+c+"= \"+i);\n return r;\n }}";
String code = "import Job.Job;\nimport Job.Result;\nimport Job.Result.PartialResult;\nimport Job.Jobsrc;\npublic class A" + c + " extends Jobsrc {\n@Override\npublic Result run() {\ndouble i ="+c+";\nfor(int n = 2; n < " + c + ";n++){\n i *= n;\n}\n Result r = new Result(" + (jobmanager.jobs_total() +1) +");\nr.OutputConsole(\"!"+c+"= \"+i);\n return r;\n }}";
jobmanager.enque(new Job(code));
}
}

@Override
public void HandlePartialResult(PartialResult pres) {}//unused

@Override
public void requestnewjobs(int amount) {}
}

+ 0
- 4
test-primefinder/BBPrimeFinder/src/mrbesen/PrimeFinder.java View File

@@ -96,8 +96,4 @@ public class PrimeFinder extends Program {
e.printStackTrace();
}
}

@Override
public void requestnewjobs(int amount) {}
}

Loading…
Cancel
Save