/**
*
*/
package io.client.thrift;
import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import javax.net.SocketFactory;
import javax.net.ssl.SSLContext;
/**
* @author HouKangxi
*
*/
public class TcpSocketFactory extends SocketFactory {
protected String host;
protected int port;
private int soTimeOut = 2000;
private SSLContext sslContext;
public TcpSocketFactory(String host, int port) {
this.host = host;
this.port = port;
}
public TcpSocketFactory(String host, int port, SSLContext sslContext) {
this.host = host;
this.port = port;
this.sslContext = sslContext;
}
public TcpSocketFactory setSoTimeOut(int soTimeOut) {
this.soTimeOut = soTimeOut;
return this;
}
@Override
public int hashCode() {
return host.hashCode() + port;
}
/*
* (non-Javadoc)
*
* @see javax.net.SocketFactory#createSocket(java.lang.String, int)
*/
@Override
public Socket createSocket() throws IOException {
Socket socket;
if (sslContext == null) {
socket = new Socket(host, port);
} else {
socket = sslContext.getSocketFactory().createSocket(host, port);
}
if (soTimeOut > 0) {
socket.setSoTimeout(soTimeOut);
}
return socket;
}
@Override
public Socket createSocket(String host, int port) throws IOException, UnknownHostException {
return createSocket();
}
@Override
public Socket createSocket(InetAddress host, int port) throws IOException {
return null;
}
@Override
public Socket createSocket(String host, int port, InetAddress localHost, int localPort)
throws IOException, UnknownHostException {
return null;
}
@Override
public Socket createSocket(InetAddress address, int port, InetAddress localAddress, int localPort)
throws IOException {
return null;
}
}