NIO Socket, selector.select() зависает навсегда [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 NIO Socket, selector.select() зависает навсегда [закрыто]

Сообщение Anonymous »

Я переписываю программу NIO без блочных сокетов для Linux, теперь разрабатываю ее для Windows 10 Enterprise, Java 11 на eclipse 4.24.0. У моего сокета есть два задания: 1) чтение данных из ICS (длина всегда 126) и запись в Oracle, другое приложение CTRL обрабатывает данные и записывает ответы в базу данных (len = 126), поэтому задача 2: чтение моего сокета Ответы CTRL из базы данных отправляются в ICS. К сожалению, моя программа зависает навсегда при
readyCount = selector.select() или всегда возвращает 0 по тайм-ауту. следующее: 1) моя программа связана с этой проблемой. 2) отладочная информация.
Пожалуйста, помогите.

Код: Выделить всё

//To reduce size, I skipped unrelated functions.
//     Port 1515, buffer size 126
private void setupSocketConnOperations() throws MarisCommsException {
ServerSocketChannel serverChannel = null;
Selector selector = null;
try {
serverChannel = ServerSocketChannel.open();
selector = Selector.open();
serverChannel.configureBlocking(false);
int ops = serverChannel.validOps();

InetSocketAddress socktAddr = new InetSocketAddress( "localhost", 1515);
serverChannel.bind(socktAddr);
LoggerService.logSocket("Server socket bound on port " + socketPortNo);
serverChannel.register(selector, SelectionKey.OP_ACCEPT);
int readyCount = 0;
LoggerService.logSocket("About to enter infinite loop");
while (true) {
try{
readyCount = selector.select(5000); // with timeout, hang on 5000, and then always return 0.  if no timeout, hang on forever at here
if (readyCount == 0) {
Thread.sleep(500);
continue;
}
Set readyKeys = selector.selectedKeys();
Iterator i = readyKeys.iterator();
IMarisCommsMessageProtocol commsMsgProtocol = new MarisCommsMessageProtocol(buffer_size);// 126

while (i.hasNext()) {
SelectionKey key = (SelectionKey) i.next();
i.remove();
if (key.isAcceptable()) {
try {
commsMsgProtocol.handleAccept(key);
}
catch (MarisCommsException e) {
LoggerService.logSocket("Failed to accept connection request from client: " + e.getMessage());
}
continue;
}

if (key.isValid() && key.isReadable()) {
try {
commsMsgProtocol.handleRead(key);
}
catch (MarisCommsException e) {
LoggerService.logSocket("Error during message read: " + e.getMessage());
}
}

if (key.isValid() && key.isWritable()) {  ///TODO comment out msg sent
try {
commsMsgProtocol.handleWrite(key);
}
catch (MarisCommsException e) {
LoggerService.logSocket("Error during message write (Maris -> ICS: " + e.getMessage());
}
}
}
}catch (Exception e) {
Utility.handleException(e)
return;
}
finally {

}
}
}catch(Exception e2) {

}
}
при отладке в java.noi процесс исчезает в этой функции при попытке войти/перейти/вернуться:

Код: Выделить всё

ClassLoader.findNative(ClassLoader loader, String entryName) {  //parameter:  loader=null, entryName =Java_sun_nio_ch_WEPoll_wait
if (loader == null) {
//entryName=java_sun_nio_ch_WEPoll_wait
//return 0 from find(entryName),
//In debug express, BootLoader.getNativeLibraries().find(entryName) = 140708885261832
//When debug cursor at the following line, debug step with F5/F6/F7 will make debug cursor dispeared, and no way to control the debug.
return BootLoader.getNativeLibraries().find(entryName);
} else {
return loader.libraries.find(entryName);
}
Пожалуйста, помогите.

Подробнее здесь: https://stackoverflow.com/questions/791 ... on-forever
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • NIO Socket, selector.select() зависает навсегда [закрыто]
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • NIO Socket, selector.select() зависает навсегда [закрыто]
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • NIO Socket, selector.select() зависает навсегда
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Нажмите кнопку на асинхронном веб-сайте. Невозможно найти элемент: {"method": "css selector", "selector":".Icon__oBwY4"}
    Anonymous » » в форуме Python
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous
  • Нажмите кнопку на асинхронном веб-сайте. Невозможно найти элемент: {"method": "css selector", "selector":".Icon__oBwY4"}
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»