我想通过TCP连续发送ArrayList(冷却时间为1ms)。
我能够做到这一点,但是仅几秒钟后,我遇到了诸如延迟几秒钟或连接被取消之类的问题。
这是客户端读取方法:
Socket clientSocket = new Socket("localhost", 9898);
new Thread() {
public void run() {
while (true) {
try {
ObjectInputStream objectInput = new ObjectInputStream(
clientSocket.getInputStream());
Object object = objectInput.readObject();
point = (ArrayList<Point>) object;
imageLabel.updatePointList(point);
imageLabel.addBrushSetting();
repaint();
Thread.sleep(1);
} catch (Exception ex) {}
}
}
}.start();
这是我的服务器发送方法:
new Thread() {
public void run() {
while (true) {
try {
ServerSocket serverSocket = new ServerSocket(9898);
Socket connectionSocket = serverSocket.accept();
lblConnected.setText("CONNECTED");
new Thread() {
public void run() {
while (true) {
try {
ObjectOutputStream objectOutput = new ObjectOutputStream(
connectionSocket.getOutputStream());
objectOutput.writeObject(point);
//objectOutput.close();
Thread.sleep(1);
} catch (Exception ex) {}
}
}
}.start();
} catch (Exception ex) {}
}
}
}.start();
您可能还会在此处看到完整的代码:
https://github.com/Smarcy/CSGO-TacTool
我遇到这些问题有明显的理由吗?