public Object getOption(int optID) throws IOException
{
if (fd == null) {
throw new IOException("socket not created");
}
if (optID == SocketOptions.SO_TIMEOUT) {
return 0;
}
int value = getOption_native(fd, optID);
switch (optID)
{
case SocketOptions.SO_RCVBUF:
case SocketOptions.SO_SNDBUF:
return value;
case SocketOptions.SO_REUSEADDR:
default:
return value;
}
}
java类java.net.SocketOptions的实例源码
LocalSocketImpl.java 文件源码
项目:silvertunnel-ng
阅读 18
收藏 0
点赞 0
评论 0
EvoSuiteSocket.java 文件源码
项目:evosuite
阅读 25
收藏 0
点赞 0
评论 0
@Override
protected void bind(InetAddress host, int port) throws IOException {
if(port == 0) {
port = VirtualNetwork.getInstance().getNewLocalEphemeralPort();
}
//TODO: need to check special cases like multicast
boolean opened = VirtualNetwork.getInstance().openTcpServer(host.getHostAddress(), port);
if(!opened) {
throw new IOException("Failed to open TCP port");
}
super.localport = port;
setOption(SocketOptions.SO_BINDADDR, host);
isBound = true;
}
BlockGuard.java 文件源码
项目:In-the-Box-Fork
阅读 18
收藏 0
点赞 0
评论 0
private boolean isLingerSocket(FileDescriptor fd) throws SocketException {
try {
Object lingerValue = mNetwork.getSocketOption(fd, SocketOptions.SO_LINGER);
if (lingerValue instanceof Boolean) {
return (Boolean) lingerValue;
} else if (lingerValue instanceof Integer) {
return ((Integer) lingerValue) != 0;
}
throw new AssertionError(lingerValue.getClass().getName());
} catch (Exception ignored) {
// We're called via Socket.close (which doesn't ask for us to be called), so we
// must not throw here, because Socket.close must not throw if asked to close an
// already-closed socket.
return false;
}
}
PlainDatagramSocketImpl.java 文件源码
项目:cInterphone
阅读 23
收藏 0
点赞 0
评论 0
@Override
public Object getOption(int optID) throws SocketException {
if (optID == SocketOptions.SO_TIMEOUT) {
return Integer.valueOf(receiveTimeout);
} else if (optID == SocketOptions.IP_TOS) {
return Integer.valueOf(trafficClass);
} else {
// Call the native first so there will be
// an exception if the socket if closed.
Object result = netImpl.getSocketOption(fd, optID);
if (optID == SocketOptions.IP_MULTICAST_IF
&& (netImpl.getSocketFlags() & MULTICAST_IF) != 0) {
try {
return InetAddress.getByAddress(ipaddress);
} catch (UnknownHostException e) {
return null;
}
}
return result;
}
}
PlainDatagramSocketImpl.java 文件源码
项目:cn1
阅读 19
收藏 0
点赞 0
评论 0
public Object getOption(int optID) throws SocketException {
if (optID == SocketOptions.SO_TIMEOUT) {
return Integer.valueOf(receiveTimeout);
} else if (optID == SocketOptions.IP_TOS) {
return Integer.valueOf(trafficClass);
} else {
// Call the native first so there will be
// an exception if the socket if closed.
Object result = netImpl.getSocketOption(fd, optID);
if (optID == SocketOptions.IP_MULTICAST_IF
&& (netImpl.getSocketFlags() & MULTICAST_IF) != 0) {
try {
return InetAddress.getByAddress(ipaddress);
} catch (UnknownHostException e) {
return null;
}
}
return result;
}
}
PlainSocketImpl.java 文件源码
项目:cn1
阅读 19
收藏 0
点赞 0
评论 0
@Override
public Object getOption(int optID) throws SocketException {
if (optID == SocketOptions.SO_TIMEOUT) {
return Integer.valueOf(receiveTimeout);
} else if (optID == SocketOptions.IP_TOS) {
return Integer.valueOf(trafficClass);
} else {
// Call the native first so there will be
// an exception if the socket if closed.
Object result = netImpl.getSocketOption(fd, optID);
if (optID == SocketOptions.TCP_NODELAY
&& (netImpl.getSocketFlags() & TCP_NODELAY) != 0) {
return Boolean.valueOf(tcpNoDelay);
}
return result;
}
}
PlainDatagramSocketImpl.java 文件源码
项目:freeVM
阅读 217
收藏 0
点赞 0
评论 0
@Override
public Object getOption(int optID) throws SocketException {
if (optID == SocketOptions.SO_TIMEOUT) {
return Integer.valueOf(receiveTimeout);
} else if (optID == SocketOptions.IP_TOS) {
return Integer.valueOf(trafficClass);
} else {
// Call the native first so there will be
// an exception if the socket if closed.
Object result = netImpl.getSocketOption(fd, optID);
if (optID == SocketOptions.IP_MULTICAST_IF
&& (netImpl.getSocketFlags() & MULTICAST_IF) != 0) {
try {
return InetAddress.getByAddress(ipaddress);
} catch (UnknownHostException e) {
return null;
}
}
return result;
}
}
PlainSocketImpl.java 文件源码
项目:freeVM
阅读 19
收藏 0
点赞 0
评论 0
@Override
public Object getOption(int optID) throws SocketException {
if (optID == SocketOptions.SO_TIMEOUT) {
return Integer.valueOf(receiveTimeout);
} else if (optID == SocketOptions.IP_TOS) {
return Integer.valueOf(trafficClass);
} else {
// Call the native first so there will be
// an exception if the socket if closed.
Object result = netImpl.getSocketOption(fd, optID);
if (optID == SocketOptions.TCP_NODELAY
&& (netImpl.getSocketFlags() & TCP_NODELAY) != 0) {
return Boolean.valueOf(tcpNoDelay);
}
return result;
}
}
PlainDatagramSocketImpl.java 文件源码
项目:freeVM
阅读 28
收藏 0
点赞 0
评论 0
public Object getOption(int optID) throws SocketException {
if (optID == SocketOptions.SO_TIMEOUT) {
return Integer.valueOf(receiveTimeout);
} else if (optID == SocketOptions.IP_TOS) {
return Integer.valueOf(trafficClass);
} else {
// Call the native first so there will be
// an exception if the socket if closed.
Object result = netImpl.getSocketOption(fd, optID);
if (optID == SocketOptions.IP_MULTICAST_IF
&& (netImpl.getSocketFlags() & MULTICAST_IF) != 0) {
try {
return InetAddress.getByAddress(ipaddress);
} catch (UnknownHostException e) {
return null;
}
}
return result;
}
}
PlainSocketImpl.java 文件源码
项目:freeVM
阅读 21
收藏 0
点赞 0
评论 0
@Override
public Object getOption(int optID) throws SocketException {
if (optID == SocketOptions.SO_TIMEOUT) {
return Integer.valueOf(receiveTimeout);
} else if (optID == SocketOptions.IP_TOS) {
return Integer.valueOf(trafficClass);
} else {
// Call the native first so there will be
// an exception if the socket if closed.
Object result = netImpl.getSocketOption(fd, optID);
if (optID == SocketOptions.TCP_NODELAY
&& (netImpl.getSocketFlags() & TCP_NODELAY) != 0) {
return Boolean.valueOf(tcpNoDelay);
}
return result;
}
}
PlainDatagramSocketImpl.java 文件源码
项目:phonty
阅读 24
收藏 0
点赞 0
评论 0
@Override
public Object getOption(int optID) throws SocketException {
if (optID == SocketOptions.SO_TIMEOUT) {
return Integer.valueOf(receiveTimeout);
} else if (optID == SocketOptions.IP_TOS) {
return Integer.valueOf(trafficClass);
} else {
// Call the native first so there will be
// an exception if the socket if closed.
Object result = netImpl.getSocketOption(fd, optID);
if (optID == SocketOptions.IP_MULTICAST_IF
&& (netImpl.getSocketFlags() & MULTICAST_IF) != 0) {
try {
return InetAddress.getByAddress(ipaddress);
} catch (UnknownHostException e) {
return null;
}
}
return result;
}
}
NetSocket2SocketImpl.java 文件源码
项目:netlib
阅读 19
收藏 0
点赞 0
评论 0
public Object getOption(int key) throws SocketException {
if (key==SocketOptions.SO_TIMEOUT) {
// get timeout
return inputStreamTimeout;
}
if (key==SocketOptions.TCP_NODELAY) {
return tcpNodelay;
}
if (key==SocketOptions.SO_LINGER) {
// get timeout
return soLinger;
}
// unsupported option
String msg = "no implementation for getOption("+key+"). List of all options in java.net.SocketOptions.";
if (log.isLoggable(Level.FINER)) {
log.log(Level.FINER, msg, new Throwable("method not completely implemented"));
} else {
log.info(msg+" - Log with level=FINER to get call hierarchy.");
}
return null;
}
QoSDatagramSocket.java 文件源码
项目:java-coap
阅读 20
收藏 0
点赞 0
评论 0
/**
* Non-synchronized on purpose (TODO refactor away the need to do this)
*/
@SuppressWarnings("sync-override")
@Override
public void setTrafficClass(int tc) throws SocketException {
if (tc < 0 || tc > 255) {
throw new IllegalArgumentException("tc is not in range 0 -- 255");
}
if (isClosed()) {
throw new SocketException("Socket is closed");
}
impl.setOption(SocketOptions.IP_TOS, tc);
}
VMPlainSocketImpl.java 文件源码
项目:javify
阅读 33
收藏 0
点赞 0
评论 0
public void setOption(int optionId, Object optionValue)
throws SocketException
{
int value;
if (optionValue instanceof Integer)
value = ((Integer) optionValue).intValue();
else if (optionValue instanceof Boolean)
// Switching off the linger behavior is done by setting
// the value to -1. This is how the Java API interprets
// it.
value = ((Boolean) optionValue).booleanValue()
? 1
: (optionId == SocketOptions.SO_LINGER)
? -1
: 0;
else
throw new IllegalArgumentException("option value type "
+ optionValue.getClass().getName());
try
{
setOption(nfd.getNativeFD(), optionId, value);
}
catch (IOException ioe)
{
SocketException se = new SocketException();
se.initCause(ioe);
throw se;
}
}
VMPlainSocketImpl.java 文件源码
项目:javify
阅读 19
收藏 0
点赞 0
评论 0
/**
* Get a socket option. This implementation is only required to support
* socket options that are boolean values, which include:
*
* SocketOptions.IP_MULTICAST_LOOP
* SocketOptions.SO_BROADCAST
* SocketOptions.SO_KEEPALIVE
* SocketOptions.SO_OOBINLINE
* SocketOptions.SO_REUSEADDR
* SocketOptions.TCP_NODELAY
*
* and socket options that are integer values, which include:
*
* SocketOptions.IP_TOS
* SocketOptions.SO_LINGER
* SocketOptions.SO_RCVBUF
* SocketOptions.SO_SNDBUF
* SocketOptions.SO_TIMEOUT
*
* @param optionId The option ID to fetch.
* @return A {@link Boolean} or {@link Integer} containing the socket
* option.
* @throws SocketException
*/
public Object getOption(int optionId) throws SocketException
{
int value;
try
{
value = getOption(nfd.getNativeFD(), optionId);
}
catch (IOException ioe)
{
SocketException se = new SocketException();
se.initCause(ioe);
throw se;
}
switch (optionId)
{
case SocketOptions.IP_MULTICAST_LOOP:
case SocketOptions.SO_BROADCAST:
case SocketOptions.SO_KEEPALIVE:
case SocketOptions.SO_OOBINLINE:
case SocketOptions.SO_REUSEADDR:
case SocketOptions.TCP_NODELAY:
return Boolean.valueOf(value != 0);
case SocketOptions.IP_TOS:
case SocketOptions.SO_LINGER:
case SocketOptions.SO_RCVBUF:
case SocketOptions.SO_SNDBUF:
case SocketOptions.SO_TIMEOUT:
return new Integer(value);
default:
throw new SocketException("getting option " + optionId +
" not supported here");
}
}
VMPlainSocketImpl.java 文件源码
项目:jvm-stm
阅读 20
收藏 0
点赞 0
评论 0
public void setOption(int optionId, Object optionValue)
throws SocketException
{
int value;
if (optionValue instanceof Integer)
value = ((Integer) optionValue).intValue();
else if (optionValue instanceof Boolean)
// Switching off the linger behavior is done by setting
// the value to -1. This is how the Java API interprets
// it.
value = ((Boolean) optionValue).booleanValue()
? 1
: (optionId == SocketOptions.SO_LINGER)
? -1
: 0;
else
throw new IllegalArgumentException("option value type "
+ optionValue.getClass().getName());
try
{
setOption(nfd.getNativeFD(), optionId, value);
}
catch (IOException ioe)
{
SocketException se = new SocketException();
se.initCause(ioe);
throw se;
}
}
VMPlainSocketImpl.java 文件源码
项目:jvm-stm
阅读 20
收藏 0
点赞 0
评论 0
/**
* Get a socket option. This implementation is only required to support
* socket options that are boolean values, which include:
*
* SocketOptions.IP_MULTICAST_LOOP
* SocketOptions.SO_BROADCAST
* SocketOptions.SO_KEEPALIVE
* SocketOptions.SO_OOBINLINE
* SocketOptions.SO_REUSEADDR
* SocketOptions.TCP_NODELAY
*
* and socket options that are integer values, which include:
*
* SocketOptions.IP_TOS
* SocketOptions.SO_LINGER
* SocketOptions.SO_RCVBUF
* SocketOptions.SO_SNDBUF
* SocketOptions.SO_TIMEOUT
*
* @param optionId The option ID to fetch.
* @return A {@link Boolean} or {@link Integer} containing the socket
* option.
* @throws SocketException
*/
public Object getOption(int optionId) throws SocketException
{
int value;
try
{
value = getOption(nfd.getNativeFD(), optionId);
}
catch (IOException ioe)
{
SocketException se = new SocketException();
se.initCause(ioe);
throw se;
}
switch (optionId)
{
case SocketOptions.IP_MULTICAST_LOOP:
case SocketOptions.SO_BROADCAST:
case SocketOptions.SO_KEEPALIVE:
case SocketOptions.SO_OOBINLINE:
case SocketOptions.SO_REUSEADDR:
case SocketOptions.TCP_NODELAY:
return Boolean.valueOf(value != 0);
case SocketOptions.IP_TOS:
case SocketOptions.SO_LINGER:
case SocketOptions.SO_RCVBUF:
case SocketOptions.SO_SNDBUF:
case SocketOptions.SO_TIMEOUT:
return new Integer(value);
default:
throw new SocketException("getting option " + optionId +
" not supported here");
}
}
PlainServerSocketImpl.java 文件源码
项目:j2objc
阅读 22
收藏 0
点赞 0
评论 0
@Override
protected void create(boolean isStreaming) throws IOException {
super.create(isStreaming);
if (isStreaming) {
setOption(SocketOptions.SO_REUSEADDR, Boolean.TRUE);
}
}
NetSocket2SocketImpl.java 文件源码
项目:silvertunnel-monteux
阅读 19
收藏 0
点赞 0
评论 0
@Override
public Object getOption(final int key) throws SocketException
{
if (key == SocketOptions.SO_TIMEOUT)
{
// get timeout
return inputStreamTimeout;
}
if (key == SocketOptions.TCP_NODELAY)
{
return tcpNodelay;
}
if (key == SocketOptions.SO_LINGER)
{
// get timeout
return soLinger;
}
// unsupported option
final String msg = "no implementation for getOption(" + key
+ "). List of all options in java.net.SocketOptions.";
if (logger.isDebugEnabled())
{
logger.debug(msg, new Throwable("method not completely implemented"));
}
else
{
logger.info(msg + " - Log with level=debug to get call hierarchy.");
}
return null;
}
MockSocket.java 文件源码
项目:evosuite
阅读 21
收藏 0
点赞 0
评论 0
@Override
public void setSoLinger(boolean on, int linger) throws SocketException {
if (isClosed())
throw new SocketException("Socket is closed");
if (!on) {
getImpl().setOption(SocketOptions.SO_LINGER, new Boolean(on));
} else {
if (linger < 0) {
throw new IllegalArgumentException("invalid value for SO_LINGER");
}
if (linger > 65535)
linger = 65535;
getImpl().setOption(SocketOptions.SO_LINGER, new Integer(linger));
}
}
MockSocket.java 文件源码
项目:evosuite
阅读 19
收藏 0
点赞 0
评论 0
@Override
public int getSoLinger() throws SocketException {
if (isClosed())
throw new SocketException("Socket is closed");
Object o = getImpl().getOption(SocketOptions.SO_LINGER);
if (o instanceof Integer) {
return ((Integer) o).intValue();
} else {
return -1;
}
}
MockSocket.java 文件源码
项目:evosuite
阅读 20
收藏 0
点赞 0
评论 0
@Override
public synchronized void setSoTimeout(int timeout) throws SocketException {
if (isClosed())
throw new SocketException("Socket is closed");
if (timeout < 0)
throw new IllegalArgumentException("timeout can't be negative");
getImpl().setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout));
}
MockSocket.java 文件源码
项目:evosuite
阅读 18
收藏 0
点赞 0
评论 0
@Override
public synchronized int getSoTimeout() throws SocketException {
if (isClosed())
throw new SocketException("Socket is closed");
Object o = getImpl().getOption(SocketOptions.SO_TIMEOUT);
if (o instanceof Integer) {
return ((Integer) o).intValue();
} else {
return 0;
}
}
MockSocket.java 文件源码
项目:evosuite
阅读 19
收藏 0
点赞 0
评论 0
@Override
public synchronized void setSendBufferSize(int size) throws SocketException{
if (!(size > 0)) {
throw new IllegalArgumentException("negative send size");
}
if (isClosed())
throw new SocketException("Socket is closed");
getImpl().setOption(SocketOptions.SO_SNDBUF, new Integer(size));
}
MockSocket.java 文件源码
项目:evosuite
阅读 19
收藏 0
点赞 0
评论 0
@Override
public synchronized int getSendBufferSize() throws SocketException {
if (isClosed())
throw new SocketException("Socket is closed");
int result = 0;
Object o = getImpl().getOption(SocketOptions.SO_SNDBUF);
if (o instanceof Integer) {
result = ((Integer)o).intValue();
}
return result;
}
MockSocket.java 文件源码
项目:evosuite
阅读 20
收藏 0
点赞 0
评论 0
@Override
public synchronized void setReceiveBufferSize(int size) throws SocketException{
if (size <= 0) {
throw new IllegalArgumentException("invalid receive size");
}
if (isClosed())
throw new SocketException("Socket is closed");
getImpl().setOption(SocketOptions.SO_RCVBUF, new Integer(size));
}
MockSocket.java 文件源码
项目:evosuite
阅读 20
收藏 0
点赞 0
评论 0
@Override
public synchronized int getReceiveBufferSize() throws SocketException{
if (isClosed())
throw new SocketException("Socket is closed");
int result = 0;
Object o = getImpl().getOption(SocketOptions.SO_RCVBUF);
if (o instanceof Integer) {
result = ((Integer)o).intValue();
}
return result;
}
MockSocket.java 文件源码
项目:evosuite
阅读 22
收藏 0
点赞 0
评论 0
@Override
public void setTrafficClass(int tc) throws SocketException {
if (tc < 0 || tc > 255)
throw new IllegalArgumentException("tc is not in range 0 -- 255");
if (isClosed())
throw new SocketException("Socket is closed");
getImpl().setOption(SocketOptions.IP_TOS, new Integer(tc));
}
EvoSuiteSocket.java 文件源码
项目:evosuite
阅读 19
收藏 0
点赞 0
评论 0
private void initOptions() {
// see AbstractPlainSocketImpl
options.put(SocketOptions.SO_TIMEOUT, 0);
options.put(SocketOptions.SO_RCVBUF, 131072);
options.put(SocketOptions.SO_SNDBUF, 131072);
options.put(SocketOptions.SO_LINGER, -1);
options.put(SocketOptions.SO_KEEPALIVE, false);
options.put(SocketOptions.SO_OOBINLINE, false);
options.put(SocketOptions.SO_REUSEADDR, false);
options.put(SocketOptions.TCP_NODELAY, false);
options.put(SocketOptions.IP_TOS, 0);
}
EvoSuiteSocket.java 文件源码
项目:evosuite
阅读 21
收藏 0
点赞 0
评论 0
@Override
protected void accept(SocketImpl s) throws IOException {
if(!(s instanceof EvoSuiteSocket)) {
throw new IOException("Can only handle mocked sockets");
}
EvoSuiteSocket mock = (EvoSuiteSocket) s;
/*
* If the test case has set up an incoming connection, then
* simulate an immediate connection.
* If not, there is no point in blocking the SUT for
* a connection that will never arrive: just throw an exception
*/
InetAddress localHost = (InetAddress) options.get(SocketOptions.SO_BINDADDR);
NativeTcp tcp = VirtualNetwork.getInstance().pullTcpConnection(localHost.getHostAddress(),localport);
if(tcp == null) {
throw new IOException("Simulated exception on waiting server");
} else {
mock.openedConnection = tcp;
mock.setOption(SocketOptions.SO_BINDADDR, localHost);
mock.setLocalPort(localport);
mock.setRemoteAddress(InetAddress.getByName(tcp.getRemoteEndPoint().getHost()));
mock.setRemotePort(tcp.getRemoteEndPoint().getPort());
}
}