SocketTask task = new SocketTask() {
public void doit() throws IOException {
if (localAddress != null) {
setSocket(socketFactory.createSocket(host, port, localAddress, 0));
} else {
setSocket(socketFactory.createSocket(host, port));
}
}
};
TimeoutController.execute(task, connectTimeout);
socket = task.getSocket();