- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
private char readNextChar() throws IOException {
synchronized (in) {
if (plain) {
if (BANDWIDTH_DEBUG) {
CasinoServer.bandwidthChecker.addClientMessageReceived(1);
}
int c = in.read();
if (c == -1) {
throw new IOException("Client disconnected");
}
return (char) c;
}
if (num_bytes_read % 5 == 0) {
if (!isNgClient()) {
last_byte_read = readURLEncodedChar();
} else {
if (BANDWIDTH_DEBUG) {
CasinoServer.bandwidthChecker.addClientMessageReceived(1);
}
int c = in.read();
if (c == -1) {
throw new IOException("Client disconnected");
}
last_byte_read = c & 0xff;
}
++num_bytes_read;
}
int x;
if (!isNgClient()) {
x = readURLEncodedChar();
} else {
if (BANDWIDTH_DEBUG) {
CasinoServer.bandwidthChecker.addClientMessageReceived(1);
}
int c = in.read();
if (c == -1) {
throw new IOException("Client disconnected");
}
x = c & 0xff;
}
last_byte_read ^= x;
int y = last_byte_read;
last_byte_read = (x & 0xff);
++num_bytes_read;
return (char) (y & 0xff);
}
}
This is the ingenious algorithm, invented by the estonians to read a simple byte from a socket. Couldn't think of anything more error-prone, and less readable. Enjoy!
Комментарии (0) RSS
Добавить комментарий