Exporter (0) Imprimer
Développer tout

TcpServerChannel, classe

Mise à jour : novembre 2007

Implémente pour les appels distants un canal serveur qui utilise le protocole TCP pour transmettre des messages.

Espace de noms :  System.Runtime.Remoting.Channels.Tcp
Assembly :  System.Runtime.Remoting (dans System.Runtime.Remoting.dll)

public class TcpServerChannel : IChannelReceiver, 
	IChannel, ISecurableChannel
public class TcpServerChannel implements IChannelReceiver, 
	IChannel, ISecurableChannel
public class TcpServerChannel implements IChannelReceiver, IChannel, ISecurableChannel

Les canaux transportent les messages à travers les limites d'accès distant (par exemple, entre ordinateurs ou domaines d'application). La classe TcpServerChannel transporte les messages à l'aide du protocole TCP.

Les canaux sont utilisés par l'infrastructure distante .NET Framework pour transporter des appels distants. Lorsqu'un client fait un appel à un objet distant, l'appel est sérialisé dans un message qui est envoyé par un canal client et reçu par un canal serveur. Ensuite, il est désérialisé et traité. Toutes les valeurs retournées sont transmises par le canal serveur et reçues par le canal client.

Pour exécuter un traitement supplémentaire des messages côté serveur, vous pouvez spécifier une implémentation de l'interface IServerChannelSinkProvider à l'aide de laquelle tous les messages traités par l'instance de TcpServerChannel sont passés.

L'instance de TcpServerChannel accepte les messages sérialisés au format binaire ou SOAP.

Un objet TcpServerChannel a des propriétés de configuration associées qui peuvent être définies au moment de l'exécution, soit dans un fichier de configuration (en appelant la méthode statique RemotingConfiguration.Configure), soit par programme (en passant une collection IDictionary au constructeur TcpServerChannel). Pour obtenir la liste de ces propriétés de configuration, consultez Propriétés de configuration des canaux et des formateurs.

Remarque :

Si l'ordinateur serveur exécute Windows 95/98/Me, il est impossible de spécifier TcpServerChannel comme étant sécurisé.

L'exemple de code suivant illustre l'utilisation d'un type accessible à distance.

using System;
using System.Runtime.Remoting;

public class Remotable : MarshalByRefObject
{

    private int callCount = 0;

    public int GetCount()
    {
        callCount++;
        return(callCount);
    }

}


L'exemple de code suivant illustre l'utilisation de la classe TcpServerChannel pour exposer un type accessible à distance.

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using System.Security.Permissions;

public class Server
{
    [SecurityPermission(SecurityAction.LinkDemand)]
    public static void Main()
    {

        // Set up a server channel.
        TcpServerChannel serverChannel = new TcpServerChannel(9090);
        ChannelServices.RegisterChannel(serverChannel);    

        // Expose an object for remote calls.
        RemotingConfiguration.RegisterWellKnownServiceType(
            typeof(Remotable), "Remotable.rem", WellKnownObjectMode.Singleton
        );

        // Show the name and priority of the channel.
        Console.WriteLine("Channel Name: {0}", serverChannel.ChannelName);
        Console.WriteLine("Channel Priority: {0}", serverChannel.ChannelPriority);

        // Show the URIs associated with the channel.
        ChannelDataStore data = (ChannelDataStore) serverChannel.ChannelData;
        foreach (string uri in data.ChannelUris)
        {
            Console.WriteLine(uri);
        }

        // Wait for method calls.
        Console.WriteLine("Listening...");
        Console.ReadLine();

    }

}


System.Object
  System.Runtime.Remoting.Channels.Tcp.TcpServerChannel

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2015 Microsoft