uaisquer estruturas NIO para .NET? [fechadas
Existe alguma estrutura de E / S sem bloqueio para .NE
Estou procurando algo semelhante ao queApache Mina eJBoss Netty fornece Java: uma estrutura para implementar servidores altamente escalonáveis - não apenas o suporte de baixo nível que a estrutura .NET fornec
EDITAR Para explicar melhor o que eu gostaria de ver, aqui está um exemplo básico do que você pode fazer com a Mina:
Na Mina eu posso implementar um ProtocolDecoder como este:
public class SimpleDecoder extends CumulativeProtocolDecoder {
protected boolean doDecode(IoSession session, IoBuffer in, ProtocolDecoderOutput out) throws Exception {
if (in.remaining() < 4)
return false;
int length = in.getInt();
if(in.remaining() < 4 + length)
return false;
Command command = new Command(in.asInputStream());
out.write(command);
}
}
E um CommandHandler assim:
public abstract class CommandHandler extends IoHandlerAdapter{
public void messageReceived(IoSession session, Object message) throws IOException, CloneNotSupportedException {
Command command = (Command) message;
// Handle command. Probably by putting it in a workqueue.
}
}
Se eu iniciar o servidor chamando
CommandHandler handler = new CommandHandler();
NioSocketAcceptor acceptor = new NioSocketAcceptor();
acceptor.getFilterChain().addLast("protocol", new ProtocolCodecFilter(new SimpleDecoder(false)));
acceptor.setLocalAddress(new InetSocketAddress(port));
acceptor.setHandler(handler);
acceptor.bind();
Receberei um servidor sem bloqueio.
Ele executará um único (ou pelo menos apenas alguns) threads, percorrendo todas as conexões de entrada, reunindo dados dos soquetes e chamandoSimpleDecoder.doDecode()
para ver se ele possui um comando completo na conexão. Em seguida, ele passará o comando paraCommandHandler.messageReceived()
, e posso assumir o processamento.