-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEchoByteBuffer.java
More file actions
35 lines (29 loc) · 958 Bytes
/
EchoByteBuffer.java
File metadata and controls
35 lines (29 loc) · 958 Bytes
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
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
public class EchoByteBuffer {
private ByteBuffer byteBuffer;
private String message;
public EchoByteBuffer() {
byteBuffer = ByteBuffer.allocate(256);
message = "";
}
public boolean updateOnRead() {
byteBuffer.flip();
int bytesNum = byteBuffer.limit();
byte[] data = new byte[bytesNum];
byteBuffer.get(data);
String result = new String(data);
message += result;
byteBuffer.clear();
if (message.endsWith("_EOM")) {
message = message.replace("_EOM", " - Echoed by the server");
byteBuffer = Charset.forName("ISO-8859-1").encode(CharBuffer.wrap(message.toCharArray()));
return true;
}
return false;
}
public ByteBuffer getByteBuffer() {
return byteBuffer;
}
}