Compartilhar via


AsynchronousSocketChannel Classe

Definição

Um canal assíncrono para soquetes de conexão orientados a fluxo.

[Android.Runtime.Register("java/nio/channels/AsynchronousSocketChannel", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AsynchronousSocketChannel : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IAsynchronousByteChannel
[<Android.Runtime.Register("java/nio/channels/AsynchronousSocketChannel", ApiSince=26, DoNotGenerateAcw=true)>]
type AsynchronousSocketChannel = class
    inherit Object
    interface IAsynchronousByteChannel
    interface IAsynchronousChannel
    interface IChannel
    interface ICloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Herança
AsynchronousSocketChannel
Atributos
Implementações

Comentários

Um canal assíncrono para soquetes de conexão orientados a fluxo.

Os canais de soquete assíncronos são criados de duas maneiras. Um recém-criado AsynchronousSocketChannel é criado invocando um dos #open open métodos definidos por essa classe. Um canal recém-criado está aberto, mas ainda não está conectado. Uma conexão AsynchronousSocketChannel é criada quando uma conexão é feita com o soquete de um AsynchronousServerSocketChannelarquivo . Não é possível criar um canal de soquete assíncrono para um arquivo arbitrário e pré-existente java.net.Socket socket.

Um canal recém-criado é conectado invocando seu #connect connect método, uma vez conectado, um canal permanece conectado até que seja fechado. Se um canal de soquete está ou não conectado pode ser determinado invocando seu #getRemoteAddress getRemoteAddress método. Uma tentativa de invocar uma operação de E/S em um canal desconectado fará com que um NotYetConnectedException seja lançado.

Canais desse tipo são seguros para uso por vários threads simultâneos. Eles suportam leitura e escrita simultâneas, embora no máximo uma operação de leitura e uma operação de gravação possam ser excelentes a qualquer momento. Se um thread iniciar uma operação de leitura antes que uma operação de leitura anterior tenha sido concluída, um ReadPendingException será lançado. Da mesma forma, uma tentativa de iniciar uma operação de gravação antes que uma gravação anterior seja concluída lançará um WritePendingExceptionarquivo .

As opções de soquete são configuradas usando o #setOption(SocketOption,Object) setOption método. Os canais de soquete assíncronos suportam as seguintes opções: <blockquote><table class="striped"<>caption style="display:none">Socket options</caption><thead><tr><th scope="col">Option Name</th<>scope="col">Description</th></tr<>/thead><tbody><tr><th scope="row"<java.net.StandardSocketOptions#SO_SNDBUF SO_SNDBUF>/th><td> O tamanho do soquete enviar <buffer /td<>/tr<>tr th<>scope="row"<java.net.StandardSocketOptions#SO_RCVBUF SO_RCVBUF>/th><td> O tamanho do buffer <de recebimento do soquete /td></tr><tr><th scope="row">java.net.StandardSocketOptions#SO_KEEPALIVE SO_KEEPALIVE</th<>td> Mantenha a conexão viva </td<>/tr><tr th><scope="row"java.net.StandardSocketOptions#SO_REUSEADDR SO_REUSEADDR></th><td> Reuse address </td></tr<>tr><th scope="row">java.net.StandardSocketOptions#TCP_NODELAY TCP_NODELAY</th><td> Desative o algoritmo <Nagle /td></tr/tbody><<>/table></blockquote> Opções adicionais (específicas da implementação) também podem ser suportadas.

<h2>Tempos limites</h2>

Os #read(ByteBuffer,long,TimeUnit,Object,CompletionHandler) read métodos e #write(ByteBuffer,long,TimeUnit,Object,CompletionHandler) write definidos por essa classe permitem que um tempo limite seja especificado ao iniciar uma operação de leitura ou gravação. Se o tempo limite expirar antes da conclusão de uma operação, a operação será concluída com a exceção InterruptedByTimeoutException. Um tempo limite pode deixar o canal, ou a conexão subjacente, em um estado inconsistente. Quando a implementação não pode garantir que os bytes não foram lidos do canal, ela coloca o canal em um estado< de erro específico da>implementação</em>. Uma tentativa subsequente de iniciar uma read operação faz com que uma exceção de tempo de execução não especificada seja lançada. Da mesma forma, se uma write operação atingir o tempo limite e a implementação não puder garantir que os bytes não foram gravados no canal, outras tentativas para write o canal farão com que uma exceção de tempo de execução não especificada seja lançada. Quando um tempo limite expira, o estado do ByteBuffer, ou a sequência de buffers, para a operação de E/S não é definido. Os buffers devem ser descartados ou, pelo menos, deve-se tomar cuidado para garantir que os buffers não sejam acessados enquanto o canal permanece aberto. Todos os métodos que aceitam parâmetros de tempo limite tratam valores menores ou iguais a zero para significar que a operação de E/S não atinge o tempo limite.

Adicionado em 1.7.

Documentação Java para java.nio.channels.AsynchronousSocketChannel.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Construtores

AsynchronousSocketChannel(AsynchronousChannelProvider)

Inicializa uma nova instância desta classe.

AsynchronousSocketChannel(IntPtr, JniHandleOwnership)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

Propriedades

Class

Retorna a classe de tempo de execução deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
IsOpen

Um canal assíncrono para soquetes de conexão orientados a fluxo.

JniIdentityHashCode

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)
JniPeerMembers

Um canal assíncrono para soquetes de conexão orientados a fluxo.

LocalAddress

Um canal assíncrono para soquetes de conexão orientados a fluxo.

PeerReference

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)
RemoteAddress

Um canal assíncrono para soquetes de conexão orientados a fluxo.

ThresholdClass

Um canal assíncrono para soquetes de conexão orientados a fluxo.

ThresholdType

Um canal assíncrono para soquetes de conexão orientados a fluxo.

Métodos

Bind(SocketAddress)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Close()

Fecha este canal.

Connect(SocketAddress)

Conecta este canal.

Connect(SocketAddress, Object, ICompletionHandler)

Conecta este canal.

Dispose()

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)
Dispose(Boolean)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)
Equals(Object)

Indica se algum outro objeto é "igual" a este.

(Herdado de Object)
GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Notify()

Ativa um único thread que está aguardando no monitor deste objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
Open()

Abre um canal de soquete assíncrono.

Open(AsynchronousChannelGroup)

Abre um canal de soquete assíncrono.

Provider()

Retorna o provedor que criou esse canal.

Read(ByteBuffer)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

Read(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

Lê uma sequência de bytes desse canal no buffer fornecido.

Read(ByteBuffer, Object, ICompletionHandler)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

Read(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)

Lê uma sequência de bytes desse canal em uma subsequência dos buffers fornecidos.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle.

(Herdado de Object)
SetOption(ISocketOption, Object)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

ShutdownInput()

Desligue a conexão para leitura sem fechar o canal.

ShutdownOutput()

Desligue a conexão para gravação sem fechar o canal.

ToArray<T>()

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até que ele seja ativado, normalmente sendo <em notificado</em> ou <em>interrompido</em>>.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente sendo <em>notificado</em> ou <em interrompido</em>, ou até que>uma certa quantidade de tempo real tenha decorrido.

(Herdado de Object)
Write(ByteBuffer)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

Write(ByteBuffer, Int64, TimeUnit, Object, ICompletionHandler)

Grava uma sequência de bytes para este canal a partir do buffer fornecido.

Write(ByteBuffer, Object, ICompletionHandler)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

Write(ByteBuffer[], Int32, Int32, Int64, TimeUnit, Object, ICompletionHandler)

Grava uma sequência de bytes para este canal a partir de uma subsequência dos buffers fornecidos.

Implantações explícitas de interface

IJavaPeerable.Disposed()

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)
IJavaPeerable.Finalized()

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

(Herdado de Object)

Métodos de Extensão

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada em tempo de execução do Android.

JavaCast<TResult>(IJavaObject)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

GetJniTypeName(IJavaPeerable)

Um canal assíncrono para soquetes de conexão orientados a fluxo.

Aplica-se a