📄 socketfactory.java
字号:
package lib.commons.net;
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import org.apache.commons.httpclient.ConnectTimeoutException;
import org.apache.commons.httpclient.params.HttpConnectionParams;
import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
import lib.commons.config.DomConfig;
public class SocketFactory implements ProtocolSocketFactory {
public Socket createSocket(String address, int port, int connectionTimeout,
int readTimeout) throws IOException, UnknownHostException,
ConnectTimeoutException {
if (connectionTimeout < 1 && readTimeout < 1)
return createSocket(address, port);
else {
HttpConnectionParams params = new HttpConnectionParams();
if (connectionTimeout > 0)
params.setConnectionTimeout(connectionTimeout);
if (readTimeout > 0)
params.setSoTimeout(readTimeout);
return createSocket(address, port, null, 0, params);
}
}
public Socket createSocket(String arg0, int arg1) throws IOException,
UnknownHostException {
return createSocket(arg0, arg1, null, 0);
}
public Socket createSocket(String arg0, int arg1, InetAddress arg2, int arg3)
throws IOException, UnknownHostException {
return createSocket(arg0, arg1, arg2, arg3, null);
}
public Socket createSocket(String arg0, int arg1, InetAddress arg2,
int arg3, HttpConnectionParams arg4) throws IOException,
UnknownHostException, ConnectTimeoutException {
Socket socket = new Socket();
//if (null != arg2) {
// socket.bind(new InetSocketAddress(arg2, arg3));
//}
SocketAddress endpoint = new InetSocketAddress(arg0, arg1);
if (null != arg4 && arg4.getConnectionTimeout() > 0)
socket.connect(endpoint, arg4.getConnectionTimeout());
else
socket.connect(endpoint);
if (null != arg4)
setSocketParams(socket, arg4);
return socket;
}
public SocketFactory createInstance(DomConfig domConfig) throws Exception {
return new SocketFactory();
}
public static void setSocketParams(Socket socket,
HttpConnectionParams params) throws SocketException {
if (null != socket && null != params) {
//socket.setSoLinger(params.getLinger() > 0, params.getLinger());
//if (params.getSendBufferSize() > 0)
// socket.setSendBufferSize(params.getSendBufferSize());
//if (params.getReceiveBufferSize() > 0)
// socket.setReceiveBufferSize(params.getSendBufferSize());
if (params.getSoTimeout()>0)
socket.setSoTimeout(params.getSoTimeout());
//socket.setTcpNoDelay(params.getTcpNoDelay());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -