-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathStressClient.java
More file actions
67 lines (56 loc) · 1.67 KB
/
StressClient.java
File metadata and controls
67 lines (56 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package com.yurii.salimov.lesson12.task03;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Random;
/**
* @author Yuriy Salimov (yuriy.alex.salimov@gmail.com)
* @version 1.0
*/
public final class StressClient extends Thread {
private final String ip;
private final int port;
private final String[] logins;
private final String[] messages;
public StressClient(
final String ip, final int port,
final String[] logins, final String[] messages
) {
this.ip = ip;
this.port = port;
this.logins = logins;
this.messages = messages;
}
@Override
public void run() {
try (final Socket socket = new Socket(this.ip, this.port);
final OutputStream output = socket.getOutputStream()) {
while (!isInterrupted()) {
Message message = new Message(getRandomLogin(), getRandomLogin(), getRandomMessage());
message.writeToStream(output);
Thread.sleep((long) (Math.random() * 10000) + 1000);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
private String getRandomLogin() {
final int index = new Random().nextInt(this.logins.length);
return this.logins[index];
}
private String getRandomMessage() {
final int index = new Random().nextInt(this.messages.length);
return this.messages[index];
}
public String getIp() {
return ip;
}
public int getPort() {
return port;
}
public String[] setLogins() {
return logins;
}
public String[] setMessages() {
return messages;
}
}