powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Netty сервер не принимает сообщения
8 сообщений из 8, страница 1 из 1
Netty сервер не принимает сообщения
    #38042353
max_drmick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Дорогие форумчане, в общем проблема такова:
написал простой netty сервер, повесил слушатель на приход сообщений.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class NettyServerHandler extends SimpleChannelUpstreamHandler {
	private boolean _debug;
	
	public NettyServerHandler() {
		_debug = true;
	}

	@Override
	public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
		log("receivermessage");
	}
}



При использовании телнета метод не вызывается.
Если юзаю готовый netty клиент, метод успешно отрабатывает.

Подскажите пожалуйста в чем может быть причина.

Спасибо.
...
Рейтинг: 0 / 0
Netty сервер не принимает сообщения
    #38042354
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не на тот порт телнетишься?
...
Рейтинг: 0 / 0
Netty сервер не принимает сообщения
    #38042357
max_drmick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник,

порт верный, событие подключения срабатывает на сервере, а событие приема сообщений не запускается
...
Рейтинг: 0 / 0
Netty сервер не принимает сообщения
    #38042362
max_drmick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на putty сообщения приходят, а обратно нет
...
Рейтинг: 0 / 0
Netty сервер не принимает сообщения
    #38042526
tumblerrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужен код всего сервера, проблема не в хенделере скорее всего.
...
Рейтинг: 0 / 0
Netty сервер не принимает сообщения
    #38044698
max_drmick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
инициализация сервера
Код: java
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.
package core.NettyArticle;

import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.util.concurrent.Executors;
import org.jboss.netty.bootstrap.ServerBootstrap;
import org.jboss.netty.channel.ChannelFactory;
import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;


public class NettyServer {	
	public NettyServer(int port) throws Exception{
		ChannelFactory factory = new NioServerSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool());		    
	    ServerBootstrap bootstrap = new ServerBootstrap(factory);			    
	    bootstrap.setPipelineFactory(new NettyServerPipeLineFactory());		    
	    bootstrap.setOption("child.tcpNoDelay", true);
	    bootstrap.setOption("child.keepAlive", true);	    
	    bootstrap.bind(new InetSocketAddress(port));	    
	}
}

package core.NettyArticle;

import static org.jboss.netty.channel.Channels.*;

import org.jboss.netty.channel.ChannelPipeline;
import org.jboss.netty.channel.ChannelPipelineFactory;
import org.jboss.netty.handler.codec.frame.DelimiterBasedFrameDecoder;
import org.jboss.netty.handler.codec.frame.Delimiters;
import org.jboss.netty.handler.codec.string.StringDecoder;
import org.jboss.netty.handler.codec.string.StringEncoder;

public class NettyServerPipeLineFactory implements ChannelPipelineFactory {
	public ChannelPipeline getPipeline() throws Exception {
		ChannelPipeline pipeline = pipeline();
		
		pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192, Delimiters.nulDelimiter()));
		pipeline.addLast("decoder", new StringDecoder());
		pipeline.addLast("encoder", new StringEncoder());
		
		pipeline.addLast("handler", new NettyServerHandler());
		
		return pipeline;
	}	
}



хендлер, который не стартует при получении сообщения с putty

Код: java
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.
package core.NettyArticle;

import java.net.InetAddress;
import java.util.Date;

import org.jboss.netty.channel.ChannelEvent;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelStateEvent;
import org.jboss.netty.channel.ExceptionEvent;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelUpstreamHandler;

public class NettyServerHandler extends SimpleChannelUpstreamHandler {
	private boolean _debug;
	
	public NettyServerHandler() {
		_debug = true;
	}
	
	@Override
	public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
		log("receivermessage");
		try {
			new CommandProcessorSmall("cmdProcessor", new NetContext(e.getChannel(), (String) e.getMessage()), _debug).start();
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}	
}
...
Рейтинг: 0 / 0
Netty сервер не принимает сообщения
    #38045988
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
max_drmick При использовании телнета метод не вызывается.
Если юзаю готовый netty клиент, метод успешно отрабатывает.

Подскажите пожалуйста в чем может быть причина.

Код: java
1.
pipeline.addLast("framer", new DelimiterBasedFrameDecoder(8192, Delimiters.nulDelimiter()));

В своей pipelineFactory Вы используете nulDelimiter. org.jboss.netty.handler.codec.frame Class Delimiterspublic static ChannelBuffer[] nulDelimiter()
Returns a NUL (0x00) delimiter, which could be used for Flash XML socket or any similar protocols.
Вероятно, Ваш "готовый netty клиент" завершает строку нулевым байтом в отличие от телнетовского клиента, который присылает окончание строки в виде lineDelimiter
org.jboss.netty.handler.codec.frame Class Delimiterspublic static ChannelBuffer[] lineDelimiter()
Returns CR ('\r') and LF ('\n') delimiters, which could be used for text-based line protocols..
Полагаю, именно поэтому Ваш хендлер не срабатывает
...
Рейтинг: 0 / 0
Netty сервер не принимает сообщения
    #38046017
max_drmick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PL99,

Действительно! Спасибо огромное! Вы мне очень помогли!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Netty сервер не принимает сообщения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]