private static SocketOption<?> findOption(int optID) throws SocketException {
switch (optID) {
case TCP_NODELAY:
return StandardSocketOptions.TCP_NODELAY;
case SO_REUSEADDR:
return StandardSocketOptions.SO_REUSEADDR;
case SO_BROADCAST:
return StandardSocketOptions.SO_BROADCAST;
case IP_MULTICAST_IF:
return StandardSocketOptions.IP_MULTICAST_IF;
case IP_MULTICAST_LOOP:
return StandardSocketOptions.IP_MULTICAST_LOOP;
case IP_TOS:
return StandardSocketOptions.IP_TOS;
case SO_LINGER:
return StandardSocketOptions.SO_LINGER;
case SO_SNDBUF:
return StandardSocketOptions.SO_SNDBUF;
case SO_RCVBUF:
return StandardSocketOptions.SO_RCVBUF;
case SO_KEEPALIVE:
return StandardSocketOptions.SO_KEEPALIVE;
default:
throw new SocketException("unrecognized TCP option: " + optID);
}
}
java类java.net.SocketOption的实例源码
NioSocketImpl.java 文件源码
项目:jephyr
阅读 26
收藏 0
点赞 0
评论 0
AsynchronousServerSocketChannelImpl.java 文件源码
项目:infobip-open-jdk-8
阅读 18
收藏 0
点赞 0
评论 0
@Override
public final <T> AsynchronousServerSocketChannel setOption(SocketOption<T> name,
T value)
throws IOException
{
if (name == null)
throw new NullPointerException();
if (!supportedOptions().contains(name))
throw new UnsupportedOperationException("'" + name + "' not supported");
try {
begin();
if (name == StandardSocketOptions.SO_REUSEADDR &&
Net.useExclusiveBind())
{
// SO_REUSEADDR emulated when using exclusive bind
isReuseAddress = (Boolean)value;
} else {
Net.setSocketOption(fd, Net.UNSPEC, name, value);
}
return this;
} finally {
end();
}
}
AsynchronousServerSocketChannelImpl.java 文件源码
项目:infobip-open-jdk-8
阅读 24
收藏 0
点赞 0
评论 0
@Override
@SuppressWarnings("unchecked")
public final <T> T getOption(SocketOption<T> name) throws IOException {
if (name == null)
throw new NullPointerException();
if (!supportedOptions().contains(name))
throw new UnsupportedOperationException("'" + name + "' not supported");
try {
begin();
if (name == StandardSocketOptions.SO_REUSEADDR &&
Net.useExclusiveBind())
{
// SO_REUSEADDR emulated when using exclusive bind
return (T)Boolean.valueOf(isReuseAddress);
}
return (T) Net.getSocketOption(fd, Net.UNSPEC, name);
} finally {
end();
}
}
AsynchronousSocketChannelImpl.java 文件源码
项目:infobip-open-jdk-8
阅读 24
收藏 0
点赞 0
评论 0
@Override
public final <T> AsynchronousSocketChannel setOption(SocketOption<T> name, T value)
throws IOException
{
if (name == null)
throw new NullPointerException();
if (!supportedOptions().contains(name))
throw new UnsupportedOperationException("'" + name + "' not supported");
try {
begin();
if (writeShutdown)
throw new IOException("Connection has been shutdown for writing");
if (name == StandardSocketOptions.SO_REUSEADDR &&
Net.useExclusiveBind())
{
// SO_REUSEADDR emulated when using exclusive bind
isReuseAddress = (Boolean)value;
} else {
Net.setSocketOption(fd, Net.UNSPEC, name, value);
}
return this;
} finally {
end();
}
}
AsynchronousSocketChannelImpl.java 文件源码
项目:infobip-open-jdk-8
阅读 18
收藏 0
点赞 0
评论 0
@Override
@SuppressWarnings("unchecked")
public final <T> T getOption(SocketOption<T> name) throws IOException {
if (name == null)
throw new NullPointerException();
if (!supportedOptions().contains(name))
throw new UnsupportedOperationException("'" + name + "' not supported");
try {
begin();
if (name == StandardSocketOptions.SO_REUSEADDR &&
Net.useExclusiveBind())
{
// SO_REUSEADDR emulated when using exclusive bind
return (T)Boolean.valueOf(isReuseAddress);
}
return (T) Net.getSocketOption(fd, Net.UNSPEC, name);
} finally {
end();
}
}
AsynchronousServerSocketChannelImpl.java 文件源码
项目:jdk8u-dev-jdk
阅读 22
收藏 0
点赞 0
评论 0
@Override
public final <T> AsynchronousServerSocketChannel setOption(SocketOption<T> name,
T value)
throws IOException
{
if (name == null)
throw new NullPointerException();
if (!supportedOptions().contains(name))
throw new UnsupportedOperationException("'" + name + "' not supported");
try {
begin();
if (name == StandardSocketOptions.SO_REUSEADDR &&
Net.useExclusiveBind())
{
// SO_REUSEADDR emulated when using exclusive bind
isReuseAddress = (Boolean)value;
} else {
Net.setSocketOption(fd, Net.UNSPEC, name, value);
}
return this;
} finally {
end();
}
}
AsynchronousServerSocketChannelImpl.java 文件源码
项目:jdk8u-dev-jdk
阅读 28
收藏 0
点赞 0
评论 0
@Override
@SuppressWarnings("unchecked")
public final <T> T getOption(SocketOption<T> name) throws IOException {
if (name == null)
throw new NullPointerException();
if (!supportedOptions().contains(name))
throw new UnsupportedOperationException("'" + name + "' not supported");
try {
begin();
if (name == StandardSocketOptions.SO_REUSEADDR &&
Net.useExclusiveBind())
{
// SO_REUSEADDR emulated when using exclusive bind
return (T)Boolean.valueOf(isReuseAddress);
}
return (T) Net.getSocketOption(fd, Net.UNSPEC, name);
} finally {
end();
}
}
AsynchronousSocketChannelImpl.java 文件源码
项目:jdk8u-dev-jdk
阅读 32
收藏 0
点赞 0
评论 0
@Override
public final <T> AsynchronousSocketChannel setOption(SocketOption<T> name, T value)
throws IOException
{
if (name == null)
throw new NullPointerException();
if (!supportedOptions().contains(name))
throw new UnsupportedOperationException("'" + name + "' not supported");
try {
begin();
if (writeShutdown)
throw new IOException("Connection has been shutdown for writing");
if (name == StandardSocketOptions.SO_REUSEADDR &&
Net.useExclusiveBind())
{
// SO_REUSEADDR emulated when using exclusive bind
isReuseAddress = (Boolean)value;
} else {
Net.setSocketOption(fd, Net.UNSPEC, name, value);
}
return this;
} finally {
end();
}
}
AsynchronousSocketChannelImpl.java 文件源码
项目:jdk8u-dev-jdk
阅读 22
收藏 0
点赞 0
评论 0
@Override
@SuppressWarnings("unchecked")
public final <T> T getOption(SocketOption<T> name) throws IOException {
if (name == null)
throw new NullPointerException();
if (!supportedOptions().contains(name))
throw new UnsupportedOperationException("'" + name + "' not supported");
try {
begin();
if (name == StandardSocketOptions.SO_REUSEADDR &&
Net.useExclusiveBind())
{
// SO_REUSEADDR emulated when using exclusive bind
return (T)Boolean.valueOf(isReuseAddress);
}
return (T) Net.getSocketOption(fd, Net.UNSPEC, name);
} finally {
end();
}
}
DelegatingSSLSocket.java 文件源码
项目:GitHub
阅读 21
收藏 0
点赞 0
评论 0
public <T> Socket setOption(SocketOption<T> name, T value) throws IOException {
try {
SSLSocket.class.getMethod("setOption", SocketOption.class, Object.class).invoke(delegate, name, value);
return this;
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
throw new AssertionError();
}
}