В настоящее время у меня есть сервер, который слушает подключения (это базовый сервер рекордов для мобильной игры, который у меня есть), через каждые 1000 мс и прослушивает любые входящие данные.Make notStreaming InputStream
public void readData(Connection c) throws IOException {
PacketBuffer readBuffer = new PacketBuffer(Server.PACKET_CAPACITY);
int packetSize = c.getIn().read();
c.getIn().mark(packetSize);
byte[] buffer = new byte[packetSize];
c.getIn().read(buffer, 0, buffer.length);
readBuffer.setBuffer(buffer);
packetHandler.addProcess(c, readBuffer);
}
Я использую свой собственный PacketBuffer и мне нужно найти способ, так что c.getIn(). Чтения() (Это мое соединение InputStream) не блокирует. В настоящее время сокет установлен в тайм-аут 500 мс, и мой сервер будет работать нормально. Моя проблема заключается в том, что если кто-то пытается создать свою собственную программу для подключения, чтобы попытаться взломать собственные рекорды или сервер ddos, он будет запутан с помощью пута бесполезных соединений, которые блокируют поток на 500 мс, когда соединение не записывается.
Это звучит как работа для Netty вместо рукописного кода отправки. – chrylis