Hi
ich habe leider keinen passenderen Titel finden können.
Was ich will ist kontinuierlich Daten zu meinem Server zu schicken. Diese soll er verwerten und damit die Maus bewegen. Da es sich um eine Maus handelt sollte die Bewegung auch flüssig verlaufen, deshalb schicke ich die Daten von meinem Client mit ca 50 - 100 ms zwischen jedem Senden.
Wenn ich allerdings die Zeit messe zwischen den Mausbewegungen so kann ich nur einen Abstand von 200 ms messen.
Wie kann ich meinen Server also noch verbessern?
NewIO Libs? MultiThreading?
Ich habe keine Ahnung:
Hier der Code, ich hoffe ihr könnt mir helfen.
ich habe leider keinen passenderen Titel finden können.
Was ich will ist kontinuierlich Daten zu meinem Server zu schicken. Diese soll er verwerten und damit die Maus bewegen. Da es sich um eine Maus handelt sollte die Bewegung auch flüssig verlaufen, deshalb schicke ich die Daten von meinem Client mit ca 50 - 100 ms zwischen jedem Senden.
Wenn ich allerdings die Zeit messe zwischen den Mausbewegungen so kann ich nur einen Abstand von 200 ms messen.
Wie kann ich meinen Server also noch verbessern?
NewIO Libs? MultiThreading?
Ich habe keine Ahnung:
Hier der Code, ich hoffe ihr könnt mir helfen.
Code:
import java.awt.*;
import java.net.*;
import java.awt.event.*;
import java.io.*;
import java.io.IOException;
public class Test {
/**
* @param args
*/
public static void main(String[] args)
throws AWTException,IOException{
int pozX;
int pozY;
long startzeit = System.currentTimeMillis();
long endzeit;
Robot robot = new Robot();
try {
ServerSocket serverSocket = new ServerSocket(3258);
while(true) {
Socket client_socket = serverSocket.accept();
System.out.println(client_socket);
client_socket.setTcpNoDelay(true);
while(true){
BufferedReader bufferedReader =
new BufferedReader(
new InputStreamReader(
client_socket.getInputStream()));
pozX = MouseInfo.getPointerInfo().getLocation().x;
pozY = MouseInfo.getPointerInfo().getLocation().y;
String line = bufferedReader.readLine();
String[] results = line.split("<");
int newX = 1024/2 - Integer.parseInt(results[0]);
int newY = 768/2 - Integer.parseInt(results[1]);
robot.mouseMove(pozX+newX/4,pozY-newY/4);
System.out.println(line);
endzeit = System.currentTimeMillis();
System.out.println(endzeit-startzeit+" ms" );
startzeit = System.currentTimeMillis();
}
}
} catch (IOException e) {
System.out.println("Could not listen on port: 3258");
System.exit(-1);
}
}
}