TcpListener Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Escuta ligações de clientes de rede TCP.
public ref class TcpListener : IDisposable
public ref class TcpListener
public class TcpListener : IDisposable
public class TcpListener
type TcpListener = class
interface IDisposable
type TcpListener = class
Public Class TcpListener
Implements IDisposable
Public Class TcpListener
- Herança
-
TcpListener
- Implementações
Exemplos
O exemplo de código seguinte cria um TcpListener.
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Text;
class MyTcpListener
{
public static void Main()
{
TcpListener server = null;
try
{
// Set the TcpListener on port 13000.
Int32 port = 13000;
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
// TcpListener server = new TcpListener(port);
server = new TcpListener(localAddr, port);
// Start listening for client requests.
server.Start();
// Buffer for reading data
Byte[] bytes = new Byte[256];
String data = null;
// Enter the listening loop.
while(true)
{
Console.Write("Waiting for a connection... ");
// Perform a blocking call to accept requests.
// You could also use server.AcceptSocket() here.
using TcpClient client = server.AcceptTcpClient();
Console.WriteLine("Connected!");
data = null;
// Get a stream object for reading and writing
NetworkStream stream = client.GetStream();
int i;
// Loop to receive all the data sent by the client.
while((i = stream.Read(bytes, 0, bytes.Length))!=0)
{
// Translate data bytes to a ASCII string.
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
Console.WriteLine("Received: {0}", data);
// Process the data sent by the client.
data = data.ToUpper();
byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);
// Send back a response.
stream.Write(msg, 0, msg.Length);
Console.WriteLine("Sent: {0}", data);
}
}
}
catch(SocketException e)
{
Console.WriteLine("SocketException: {0}", e);
}
finally
{
server.Stop();
}
Console.WriteLine("\nHit enter to continue...");
Console.Read();
}
}
Imports System.IO
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
Class MyTcpListener
Public Shared Sub Main()
Dim server As TcpListener
server=nothing
Try
' Set the TcpListener on port 13000.
Dim port As Int32 = 13000
Dim localAddr As IPAddress = IPAddress.Parse("127.0.0.1")
server = New TcpListener(localAddr, port)
' Start listening for client requests.
server.Start()
' Buffer for reading data
Dim bytes(1024) As Byte
Dim data As String = Nothing
' Enter the listening loop.
While True
Console.Write("Waiting for a connection... ")
' Perform a blocking call to accept requests.
' You could also use server.AcceptSocket() here.
Dim client As TcpClient = server.AcceptTcpClient()
Console.WriteLine("Connected!")
data = Nothing
' Get a stream object for reading and writing
Dim stream As NetworkStream = client.GetStream()
Dim i As Int32
' Loop to receive all the data sent by the client.
i = stream.Read(bytes, 0, bytes.Length)
While (i <> 0)
' Translate data bytes to a ASCII string.
data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
Console.WriteLine("Received: {0}", data)
' Process the data sent by the client.
data = data.ToUpper()
Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes(data)
' Send back a response.
stream.Write(msg, 0, msg.Length)
Console.WriteLine("Sent: {0}", data)
i = stream.Read(bytes, 0, bytes.Length)
End While
' Shutdown and end connection
client.Close()
End While
Catch e As SocketException
Console.WriteLine("SocketException: {0}", e)
Finally
server.Stop()
End Try
Console.WriteLine(ControlChars.Cr + "Hit enter to continue....")
Console.Read()
End Sub
End Class
Veja TcpClient um exemplo de cliente.
Observações
A TcpListener classe fornece métodos simples que escutam e aceitam pedidos de ligação recebidos em modo síncrono de bloqueio. Pode usar a TcpClient ou a Socket para se ligar a um TcpListener. Crie um TcpListener usando um IPEndPoint, um endereço IP local e um número de porta, ou apenas um número de porta. Especifique Any para o endereço IP local e 0 para o número da porta local se quiser que o fornecedor de serviços subjacente lhe atribua esses valores. Se optar por fazer isto, pode usar a LocalEndpoint propriedade para identificar a informação atribuída, depois de a tomada se ter ligado.
Use o Start método para começar a ouvir pedidos de ligação recebidos. Start Vai enfileirar as ligações recebidas até que chames o Stop método ou até que ele tenha entrado MaxConnectionsna fila. Use um ou outro AcceptSocketAcceptTcpClient para puxar uma ligação da fila de pedidos de ligação recebida. Estes dois métodos vão bloquear. Se quiseres evitar bloqueios, podes usar primeiro o Pending método para determinar se há pedidos de ligação disponíveis na fila.
Chame o Stop método para fechar o TcpListener.
Note
O Stop método não fecha quaisquer ligações aceites. É responsável por encerrar estes documentos separadamente.
Construtores
| Name | Description |
|---|---|
| TcpListener(Int32) |
Obsoleto.
Obsoleto.
Obsoleto.
Obsoleto.
Inicializa uma nova instância da TcpListener classe que escuta na porta especificada. |
| TcpListener(IPAddress, Int32) |
Inicializa uma nova instância da TcpListener classe que escuta tentativas de ligação recebidas no endereço IP local especificado e no número de porta. |
| TcpListener(IPEndPoint) |
Inicializa uma nova instância da TcpListener classe com o endpoint local especificado. |
Propriedades
| Name | Description |
|---|---|
| Active |
Obtém um valor que indica se TcpListener está a ouvir ativamente as ligações do cliente. |
| ExclusiveAddressUse |
Recebe ou define um Boolean valor que especifica se permite TcpListener que apenas um socket subjacente ouça uma porta específica. |
| LocalEndpoint |
Obtém o subjacente EndPoint da corrente TcpListener. |
| Server |
Obtém a rede Socketsubjacente. |
Métodos
| Name | Description |
|---|---|
| AcceptSocket() |
Aceita um pedido de ligação pendente. |
| AcceptSocketAsync() |
Aceita um pedido de ligação pendente como uma operação assíncrona. |
| AcceptSocketAsync(CancellationToken) |
Aceita um pedido de ligação pendente como uma operação assíncrona cancelável. |
| AcceptTcpClient() |
Aceita um pedido de ligação pendente. |
| AcceptTcpClientAsync() |
Aceita um pedido de ligação pendente como uma operação assíncrona. |
| AcceptTcpClientAsync(CancellationToken) |
Aceita um pedido de ligação pendente como uma operação assíncrona cancelável. |
| AllowNatTraversal(Boolean) |
Permite ou desativa a travessia de Tradução de Endereços de Rede (NAT) numa TcpListener instância. |
| BeginAcceptSocket(AsyncCallback, Object) |
Inicia uma operação assíncrona para aceitar uma tentativa de ligação recebida. |
| BeginAcceptTcpClient(AsyncCallback, Object) |
Inicia uma operação assíncrona para aceitar uma tentativa de ligação recebida. |
| Create(Int32) |
Cria uma nova TcpListener instância para ouvir na porta especificada. |
| Dispose() |
Liberta todos os recursos usados pela instância atual TcpListener . |
| EndAcceptSocket(IAsyncResult) |
Aceita assíncronamente uma tentativa de ligação recebida e cria uma nova Socket para gerir a comunicação remota do host. |
| EndAcceptTcpClient(IAsyncResult) |
Aceita assíncronamente uma tentativa de ligação recebida e cria uma nova TcpClient para gerir a comunicação remota do host. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| Finalize() |
Liberta recursos usados pela TcpListener turma. |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| Pending() |
Determina se há pedidos de ligação pendentes. |
| Start() |
Começa a ouvir pedidos de ligação recebidos. |
| Start(Int32) |
Começa a ouvir pedidos de ligação recebidos com um número máximo de ligação pendente. |
| Stop() |
Fecha o ouvinte. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |