0,0 → 1,55 |
/************************************************************************** |
* 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); |
} |
} |