Blame | Last modification | View Log | Download | RSS feed
/*************************************************************************** Copyright 2011 Jules White** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.***************************************************************************/package ioio.debugger;import java.net.InetSocketAddress;import java.util.concurrent.Executors;import org.jboss.netty.bootstrap.ClientBootstrap;import org.jboss.netty.channel.Channel;import org.jboss.netty.channel.ChannelFuture;import org.jboss.netty.channel.socket.nio.NioClientSocketChannelFactory;public class NetworkClient {@SuppressWarnings("rawtypes")public static NetworkClientHandler connect(String host, int port) throws Exception {// Configure the client.ClientBootstrap bootstrap = new ClientBootstrap(new NioClientSocketChannelFactory(Executors.newCachedThreadPool(),Executors.newCachedThreadPool()));// Configure the pipeline factory.bootstrap.setPipelineFactory(new NetworkClientPipelineFactory());// Start the connection attempt.ChannelFuture future = bootstrap.connect(new InetSocketAddress(host, port));// Wait until the connection attempt succeeds or fails.Channel channel = future.awaitUninterruptibly().getChannel();if (!future.isSuccess()) {future.getCause().printStackTrace();bootstrap.releaseExternalResources();return null;}return channel.getPipeline().get(NetworkClientHandler.class);}}