本文整理了Java中java.net.Socket.getChannel()
方法的一些代码示例,展示了Socket.getChannel()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Socket.getChannel()
方法的具体详情如下:
包路径:java.net.Socket
类名称:Socket
方法名:getChannel
[英]Returns this socket's SocketChannel, if one exists. A channel is available only if this socket wraps a channel. (That is, you can go from a channel to a socket and back again, but you can't go from an arbitrary socket to a channel.) In practice, this means that the socket must have been created by java.nio.channels.ServerSocketChannel#accept or java.nio.channels.SocketChannel#open.
[中]返回此套接字的SocketChannel(如果存在)。仅当此套接字包装通道时,通道才可用。(也就是说,您可以从一个通道转到一个插座,然后再返回,但不能从任意插座转到一个通道。)实际上,这意味着套接字必须是由java创建的。尼奥。频道。ServerSocketChannel#接受或java。尼奥。频道。袜子通道#打开。
代码示例来源:origin: aws/aws-sdk-java
@Override
public SocketChannel getChannel() {
return sock.getChannel();
}
代码示例来源:origin: apache/geode
SelectableChannel getSelectableChannel() {
return this.theSocket.getChannel();
}
代码示例来源:origin: org.apache.hadoop/hadoop-common
/**
* Same as SocketOutputStream(socket.getChannel(), timeout):<br><br>
*
* Create a new ouput stream with the given timeout. If the timeout
* is zero, it will be treated as infinite timeout. The socket's
* channel will be configured to be non-blocking.
*
* @see SocketOutputStream#SocketOutputStream(WritableByteChannel, long)
*
* @param socket should have a channel associated with it.
* @param timeout timeout timeout in milliseconds. must not be negative.
* @throws IOException
*/
public SocketOutputStream(Socket socket, long timeout)
throws IOException {
this(socket.getChannel(), timeout);
}
代码示例来源:origin: org.apache.hadoop/hadoop-common
/**
* Same as SocketInputStream(socket.getChannel(), timeout): <br><br>
*
* Create a new input stream with the given timeout. If the timeout
* is zero, it will be treated as infinite timeout. The socket's
* channel will be configured to be non-blocking.
*
* @see SocketInputStream#SocketInputStream(ReadableByteChannel, long)
*
* @param socket should have a channel associated with it.
* @param timeout timeout timeout in milliseconds. must not be negative.
* @throws IOException
*/
public SocketInputStream(Socket socket, long timeout)
throws IOException {
this(socket.getChannel(), timeout);
}
代码示例来源:origin: org.apache.hadoop/hadoop-common
SocketInputWrapper(Socket s, InputStream is) {
super(is);
this.socket = s;
this.hasChannel = s.getChannel() != null;
if (hasChannel) {
Preconditions.checkArgument(is instanceof SocketInputStream,
"Expected a SocketInputStream when there is a channel. " +
"Got: %s", is);
}
}
代码示例来源:origin: org.apache.hadoop/hadoop-common
/**
* Same as SocketInputStream(socket.getChannel(), socket.getSoTimeout())
* :<br><br>
*
* Create a new input stream with the given timeout. If the timeout
* is zero, it will be treated as infinite timeout. The socket's
* channel will be configured to be non-blocking.
* @see SocketInputStream#SocketInputStream(ReadableByteChannel, long)
*
* @param socket should have a channel associated with it.
* @throws IOException
*/
public SocketInputStream(Socket socket) throws IOException {
this(socket.getChannel(), socket.getSoTimeout());
}
代码示例来源:origin: apache/zookeeper
/**
* See {@link Socket#getChannel()}. Calling this method does not trigger mode detection.
*/
@Override
public SocketChannel getChannel() {
return getSocketAllowUnknownMode().getChannel();
}
代码示例来源:origin: apache/geode
public RequestReader(Socket socket, Protocol protocol) {
buffer = ByteBuffer.allocate(getBufferSize(socket.getChannel()));
// set position to limit so that first read attempt
// returns hasRemaining() false
buffer.position(buffer.limit());
this.socket = socket;
this.protocol = protocol;
}
代码示例来源:origin: apache/geode
public void setComms(Socket socket, InputStream is, OutputStream os, ByteBuffer bb,
MessageStats msgStats) {
Assert.assertTrue(socket != null);
this.socket = socket;
this.socketChannel = socket.getChannel();
this.inputStream = is;
this.outputStream = os;
this.cachedCommBuffer = bb;
this.messageStats = msgStats;
}
代码示例来源:origin: apache/geode
/**
* Switch this connection to blocking mode so we can use oldIO to read and write messages.
*/
void makeBlocking() throws IOException {
SelectableChannel c = this.theSocket.getChannel();
c.configureBlocking(true);
}
代码示例来源:origin: igniterealtime/Openfire
public TLSStreamWriter(TLSWrapper tlsWrapper, Socket socket) throws IOException {
wrapper = tlsWrapper;
// DANIELE: Add code to use directly the socket channel
if (socket.getChannel() != null) {
wbc = ServerTrafficCounter.wrapWritableChannel(socket.getChannel());
}
else {
wbc = Channels.newChannel(
ServerTrafficCounter.wrapOutputStream(socket.getOutputStream()));
}
outAppData = ByteBuffer.allocate(tlsWrapper.getAppBuffSize());
}
代码示例来源:origin: apache/geode
public static ByteBuffer allocateCommBuffer(int size, Socket sock) {
// I expect that size will almost always be the same value
if (sock.getChannel() == null) {
// The socket this commBuffer will be used for is old IO (it has no channel).
// So the commBuffer should be heap based.
return ByteBuffer.allocate(size);
}
LinkedBlockingQueue<ByteBuffer> q = commBufferMap.get(size);
ByteBuffer result = null;
if (q != null) {
result = q.poll();
}
if (result == null) {
result = ByteBuffer.allocateDirect(size);
} else {
result.position(0);
result.limit(result.capacity());
}
return result;
}
代码示例来源:origin: apache/geode
private Command readAsciiCommand() throws IOException {
SocketChannel channel = this.socket.getChannel();
if (channel == null || !channel.isOpen()) {
throw new IllegalStateException("cannot read from channel");
}
buffer.clear();
int bytesRead = channel.read(buffer);
if (bytesRead == -1) {
throw new IOException("EOF");
}
buffer.flip();
return Command.valueOf(readCommand(buffer));
}
代码示例来源:origin: apache/geode
void setComms(Socket socket, ByteBuffer bb, MessageStats msgStats) throws IOException {
this.socketChannel = socket.getChannel();
if (this.socketChannel == null) {
setComms(socket, socket.getInputStream(), socket.getOutputStream(), bb, msgStats);
} else {
setComms(socket, null, null, bb, msgStats);
}
}
代码示例来源:origin: apache/geode
public void sendException(Exception e) {
SocketChannel channel = this.socket.getChannel();
if (channel == null || !channel.isOpen()) {
throw new IllegalStateException("cannot write to channel");
}
try {
if (e instanceof ClientError) {
channel.write(charsetASCII.encode(Reply.CLIENT_ERROR.toString()));
} else {
channel.write(charsetASCII.encode(Reply.ERROR.toString()));
}
} catch (IOException ex) {
}
}
}
代码示例来源:origin: igniterealtime/Openfire
public TLSStreamReader(TLSWrapper tlsWrapper, Socket socket) throws IOException {
wrapper = tlsWrapper;
// DANIELE: Add code to use directly the socket channel
if (socket.getChannel() != null) {
rbc = ServerTrafficCounter.wrapReadableChannel(socket.getChannel());
}
else {
rbc = Channels.newChannel(
ServerTrafficCounter.wrapInputStream(socket.getInputStream()));
}
inNetBB = ByteBuffer.allocate(wrapper.getNetBuffSize());
inAppBB = ByteBuffer.allocate(wrapper.getAppBuffSize());
}
代码示例来源:origin: org.apache.hadoop/hadoop-common
/**
* Returns OutputStream for the socket. If the socket has an associated
* SocketChannel then it returns a
* {@link SocketOutputStream} with the given timeout. If the socket does not
* have a channel, {@link Socket#getOutputStream()} is returned. In the later
* case, the timeout argument is ignored and the write will wait until
* data is available.<br><br>
*
* Any socket created using socket factories returned by {@link NetUtils},
* must use this interface instead of {@link Socket#getOutputStream()}.
*
* @see Socket#getChannel()
*
* @param socket
* @param timeout timeout in milliseconds. This may not always apply. zero
* for waiting as long as necessary.
* @return OutputStream for writing to the socket.
* @throws IOException
*/
public static OutputStream getOutputStream(Socket socket, long timeout)
throws IOException {
return (socket.getChannel() == null) ?
socket.getOutputStream() : new SocketOutputStream(socket, timeout);
}
代码示例来源:origin: spotify/docker-client
@Override
public Socket connectSocket(final int connectTimeout,
final Socket socket,
final HttpHost host,
final InetSocketAddress remoteAddress,
final InetSocketAddress localAddress,
final HttpContext context) throws IOException {
if (!(socket instanceof UnixSocket)) {
throw new AssertionError("Unexpected socket: " + socket);
}
socket.setSoTimeout(connectTimeout);
try {
socket.getChannel().connect(new UnixSocketAddress(socketFile));
} catch (SocketTimeoutException e) {
throw new ConnectTimeoutException(e, null, remoteAddress.getAddress());
}
return socket;
}
}
代码示例来源:origin: apache/geode
public void sendReply(ByteBuffer reply) throws IOException {
// for binary set the response opCode
if (this.protocol == Protocol.BINARY) {
reply.rewind();
reply.put(POSITION_OPCODE, buffer.get(POSITION_OPCODE));
reply.putInt(POSITION_OPAQUE, buffer.getInt(POSITION_OPAQUE));
if (ConnectionHandler.getLogger().finerEnabled()) {
ConnectionHandler.getLogger()
.finer("sending reply:" + reply + " " + Command.buffertoString(reply));
}
}
SocketChannel channel = this.socket.getChannel();
if (channel == null || !channel.isOpen()) {
throw new IllegalStateException("cannot write to channel");
}
channel.write(reply);
}
代码示例来源:origin: apache/geode
private ByteBuffer readAtLeast(int bytes) throws IOException {
peerNetData = ioFilter.ensureWrappedCapacity(bytes, peerNetData,
Buffers.BufferType.TRACKED_RECEIVER, getStats());
return ioFilter.readAtLeast(conn.getSocket().getChannel(), bytes, peerNetData, getStats());
}
内容来源于网络,如有侵权,请联系作者删除!