StreamSocketListener Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Dá suporte à escuta para uma conexão de rede de entrada usando um soquete de fluxo TCP ou Bluetooth RFCOMM.
public ref class StreamSocketListener sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class StreamSocketListener final : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class StreamSocketListener final : IClosable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class StreamSocketListener : System.IDisposable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class StreamSocketListener : System.IDisposable
function StreamSocketListener()
Public NotInheritable Class StreamSocketListener
Implements IDisposable
- Herança
- Atributos
- Implementações
Requisitos do Windows
Família de dispositivos |
Windows 10 (introduzida na 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduzida na v1.0)
|
Funcionalidades do aplicativo |
bluetooth.rfcomm
ID_CAP_NETWORKING [Windows Phone]
internetClientServer
privateNetworkClientServer
|
Comentários
A classe StreamSocketListener dá suporte à escuta de uma conexão de rede de entrada usando um soquete de fluxo e aceitando a conexão.
A ordem típica de operações é a seguinte:
- Crie o StreamSocketListener.
- Use a propriedade Control para recuperar um objeto StreamSocketListenerControl e definir a qualidade do soquete necessária.
- Atribua o evento ConnectionReceived a um manipulador de eventos.
- Chame o método BindServiceNameAsync ou BindEndpointAsync para associar a um número de porta TCP local ou ao nome do serviço. Para Bluetooth RFCOMM, o parâmetro de nome de serviço local é a ID do Serviço Bluetooth.
- Quando uma conexão for recebida, use o objeto StreamSocketListenerConnectionReceivedEventArgs para recuperar a propriedade Socket com o objeto StreamSocket criado.
- Use o objeto StreamSocket para enviar e receber dados.
- Chame o método Close para parar de escutar e aceitar conexões de rede de entrada e liberar todos os recursos não gerenciados associados ao objeto StreamSocketListener. Todos os objetos StreamSocket criados quando uma conexão é recebida não são afetados e podem continuar a ser usados conforme necessário.
A enumeração SocketProtectionLevel permite que um servidor controle a negociação de protocolo com clientes ao usar o objeto StreamSocketListener para escutar e associar a soquetes via Bluetooth. Quando o objeto StreamSocketListener é usado por Bluetooth, os valores SocketProtectionLevel com suporte são PlainSocket, BluetoothEncryptionAllowNullAuthentication ou BluetoothEncryptionWithAuthentication. Quando o objeto StreamSocketListener é usado para escutar e associar a soquetes que não usam Bluetooth, o único valor SocketProtectionLevel com suporte é PlainSocket.
Para usar StreamSocketListener com Bluetooth, a funcionalidade do dispositivo bluetooth.rfcomm deve ser definida no manifesto do aplicativo. Para obter mais informações, consulte Como especificar recursos de dispositivo para Bluetooth.
Tratamento de exceções
Você deve escrever código para lidar com exceções ao chamar métodos assíncronos na classe StreamSocketListener. Exceções podem resultar de erros de validação de parâmetro, falhas de resolução de nomes e erros de rede. Exceções de erros de rede (perda de conectividade, falhas de conexão e falhas de servidor, por exemplo) podem ocorrer a qualquer momento. Esses erros geram exceções. Se não for tratada pelo aplicativo, uma exceção poderá fazer com que todo o aplicativo seja encerrado pelo runtime.
O namespace Windows.Networking.Sockets tem recursos que simplificam o tratamento de erros ao usar soquetes. O método GetStatus na classe SocketError pode converter o HRESULT de uma exceção para um valor de enumeração SocketErrorStatus . Eles são úteis para resolver exceções de rede específicas de uma outra forma em seu aplicativo. Um aplicativo também pode usar o HRESULT da exceção em erros de validação de parâmetro para saber mais informações sobre o erro que causou a exceção.
Para obter mais informações sobre possíveis exceções e como lidar com exceções, consulte Tratamento de exceções em aplicativos de rede.
Usando StreamSocketListener com Bluetooth
Seu aplicativo pode usar StreamSocketListener para escutar conexões de rede via Bluetooth RFCOMM. As conexões de rede por Bluetooth usam uma ID do Serviço Bluetooth como ponto de extremidade para conexões, não uma porta IP ou um nome de serviço. Para escutar Bluetooth, seu aplicativo chamaria um dos métodos BindServiceNameAsync no StreamSocketListener com o parâmetro localServiceName definido como uma ID de Serviço Bluetooth.
Para usar StreamSocketListener e StreamSocket com Bluetooth, a funcionalidade do dispositivo bluetooth.rfcomm deve ser definida no manifesto do aplicativo. Para obter mais informações, consulte o namespace Windows.Devices.Bluetooth.Rfcomm , Como especificar recursos de dispositivo para Bluetooth e o exemplo de Bluetooth Rfcomm Chat.
Usando StreamSocketListener no Windows Server 2012
Em Windows Server 2012 e Windows Server 2012 R2, o Windows.Networking.dll que implementa a maioria das classes no namespace Windows.Networking.Sockets falhará ao carregar, a menos que o recurso do Media Foundation esteja habilitado. Como resultado, os aplicativos que usam StreamSocketListener e classes de soquete relacionadas no namespace Windows.Networking.Sockets falharão se o recurso do Media Foundation estiver desabilitado. Windows Server 2012 ou Windows Server 2012 R2 é instalado com o recurso do Media Foundation desabilitado.
O recurso do Media Foundation pode ser habilitado em Windows Server 2012 ou Windows Server 2012 R2 usando Gerenciador do Servidor ou inserindo o seguinte texto em um prompt de comando ou em um script:
dism /online /enable-feature /featurename:ServerMediaFoundation
Depois que o recurso do Media Foundation estiver habilitado, o usuário será solicitado a reiniciar. Depois que o computador for reiniciado, as classes para soquetes e WebSockets no namespace Windows.Networking.Sockets funcionarão conforme o esperado.
Construtores
StreamSocketListener() |
Cria um novo objeto StreamSocketListener . |
Propriedades
Control |
Obtém dados de controle de soquete em um objeto StreamSocketListener . |
Information |
Obtém informações de soquete para o objeto StreamSocketListener . |
Métodos
BindEndpointAsync(HostName, String) |
Inicia uma operação de associação em um StreamSocketListener a um nome de host local e um nome de serviço local. |
BindServiceNameAsync(String) |
Inicia uma operação de associação em um StreamSocketListener a um nome de serviço local. |
BindServiceNameAsync(String, SocketProtectionLevel) |
Inicia uma operação de associação em um StreamSocketListener a um nome de serviço local com um SocketProtectionLevel especificado para definir em qualquer soquete associado. |
BindServiceNameAsync(String, SocketProtectionLevel, NetworkAdapter) |
Inicia uma operação de associação de soquete em um StreamSocketListener para um nome de serviço local em um adaptador de rede especificado com um SocketProtectionLevel especificado para definir em qualquer soquete associado. |
CancelIOAsync() |
Cancela leituras e gravações pendentes em um objeto StreamSocketListener . |
Close() |
Fecha o objeto StreamSocketListener . |
Dispose() |
Realiza tarefas definidas pelo aplicativo associadas à liberação ou à redefinição de recursos não gerenciados. |
EnableTransferOwnership(Guid) |
Permite que a tarefa em segundo plano do aplicativo seja disparada pelo agente de soquete quando o tráfego para esse StreamSocketListener chegar enquanto o aplicativo não estiver ativo. |
EnableTransferOwnership(Guid, SocketActivityConnectedStandbyAction) |
Permite que a tarefa em segundo plano do aplicativo seja disparada pelo agente de soquete quando o tráfego para esse StreamSocketListener chegar enquanto o sistema estiver em espera conectado. |
TransferOwnership(String) |
Transfere a propriedade do StreamSocketListener para o serviço de intermediação de soquete, que monitora a atividade do soquete e notifica o aplicativo por meio de uma tarefa em segundo plano se houver alguma atividade. |
TransferOwnership(String, SocketActivityContext) |
Transfere a propriedade do StreamSocketListener para o serviço de intermediação de soquete, que monitora a atividade do soquete e notifica o aplicativo por meio de uma tarefa em segundo plano se houver alguma atividade. |
Eventos
ConnectionReceived |
Um evento que indica que uma conexão foi recebida no objeto StreamSocketListener . |
Aplica-se a
Confira também
- IClosable
- SocketError
- SocketErrorStatus
- StreamSocket
- StreamSocketListenerConnectionReceivedEventArgs
- StreamSocketListenerControl
- StreamSocketListenerInformation
- Conectando-se com soquetes
- Tratamento de exceções em aplicativos de rede
- Como se conectar com um soquete de fluxo
- Como se conectar com um soquete de fluxo
- Como especificar funcionalidades do dispositivo para Bluetooth
- Como usar controles de soquete avançados
- Solucionar problemas e depurar conexões de rede
- Exemplo de Bluetooth Rfcomm Chat
- Exemplo de StreamSocket do ControlChannelTrigger
- Exemplo de proximidade
- Exemplo do StreamSocket