TcpServerChannel 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
TCP 프로토콜을 사용하여 메시지를 전송하는 원격 호출용 서버 채널을 구현합니다.
public ref class TcpServerChannel : System::Runtime::Remoting::Channels::IChannelReceiver
public ref class TcpServerChannel : System::Runtime::Remoting::Channels::IChannelReceiver, System::Runtime::Remoting::Channels::ISecurableChannel
public class TcpServerChannel : System.Runtime.Remoting.Channels.IChannelReceiver
public class TcpServerChannel : System.Runtime.Remoting.Channels.IChannelReceiver, System.Runtime.Remoting.Channels.ISecurableChannel
type TcpServerChannel = class
interface IChannelReceiver
interface IChannel
type TcpServerChannel = class
interface IChannelReceiver
interface IChannel
interface ISecurableChannel
Public Class TcpServerChannel
Implements IChannelReceiver
Public Class TcpServerChannel
Implements IChannelReceiver, ISecurableChannel
- 상속
-
TcpServerChannel
- 구현
예제
다음 코드 예제에서는 원격 형식의 사용을 보여 주는 합니다.
using namespace System;
using namespace System::Runtime::Remoting;
public ref class Remotable: public MarshalByRefObject
{
private:
int callCount;
public:
Remotable()
: callCount( 0 )
{}
int GetCount()
{
callCount++;
return (callCount);
}
};
using System;
using System.Runtime.Remoting;
public class Remotable : MarshalByRefObject
{
private int callCount = 0;
public int GetCount()
{
callCount++;
return(callCount);
}
}
다음 코드 예제에서는 사용 TcpServerChannel 하는 클래스를 원격 형식을 노출 합니다.
#using <System.Runtime.Remoting.dll>
#using <System.dll>
#using <Remotable.dll>
using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Tcp;
int main()
{
// Set up a server channel.
TcpServerChannel^ serverChannel = gcnew TcpServerChannel( 9090 );
ChannelServices::RegisterChannel( serverChannel );
// Expose an object for remote calls.
RemotingConfiguration::RegisterWellKnownServiceType( Remotable::typeid, "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 = dynamic_cast<ChannelDataStore^>(serverChannel->ChannelData);
System::Collections::IEnumerator^ myEnum = data->ChannelUris->GetEnumerator();
while ( myEnum->MoveNext() )
{
String^ uri = safe_cast<String^>(myEnum->Current);
Console::WriteLine( uri );
}
// Wait for method calls.
Console::WriteLine( "Listening..." );
Console::ReadLine();
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
public class Server
{
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();
}
}
설명
중요
신뢰할 수 없는 데이터로 이 클래스에서 메서드를 호출하는 것은 보안상 위험합니다. 신뢰할 수 있는 데이터로만 이 클래스에서 메서드를 호출하세요. 자세한 내용은 모든 입력 유효성 검사를 참조하세요.
채널 (예: 컴퓨터 또는 애플리케이션 도메인) remoting 경계 간에 메시지를 전송합니다. TcpServerChannel TCP 프로토콜을 사용 하 여 메시지를 전송 하는 클래스입니다.
채널은 원격 호출을 전송 하는.NET Framework remoting 인프라에서 사용 됩니다. 클라이언트가 원격 개체에 대 한 호출 하면 호출 클라이언트 채널에서 전송 및 서버 채널에서 수신 되는 메시지로 serialize 됩니다. 역직렬화하 처리 합니다. 반환 된 값 서버 채널에서 전송 되며 클라이언트 채널에서 수신 됩니다.
서버 쪽에서 메시지의 추가 처리를 수행하려면 인스턴스에서 처리된 모든 메시지가 전달되는 인터페이스의 IServerChannelSinkProvider 구현을 TcpServerChannel 지정할 수 있습니다.
TcpServerChannel 인스턴스 이진 또는 SOAP 형식으로 직렬화 하는 메시지를 수락 합니다.
TcpServerChannel 개체에 설정할 수 있는 구성 속성을 연결 된 런타임 구성 파일에서 (정적 호출 하 여 RemotingConfiguration.Configure 메서드) 또는 프로그래밍 방식으로 (전달 하 여를 IDictionary 컬렉션을 TcpServerChannel 생성자)입니다. 이러한 구성 속성의 목록을 참조 하세요 채널 및 포맷터 구성 속성합니다.
생성자
TcpServerChannel(IDictionary, IServerChannelSinkProvider) |
지정된 채널 속성 및 싱크를 사용하여 TcpServerChannel 클래스의 새 인스턴스를 초기화합니다. |
TcpServerChannel(IDictionary, IServerChannelSinkProvider, IAuthorizeRemotingConnection) |
지정된 채널 속성, 싱크 및 권한 부여 공급자를 사용하여 TcpServerChannel 클래스의 새 인스턴스를 초기화합니다. |
TcpServerChannel(Int32) |
지정된 포트에서 수신하는 TcpServerChannel 클래스의 새 인스턴스를 초기화합니다. |
TcpServerChannel(String, Int32) |
지정된 이름을 사용하여 특정 포트에서 수신을 대기하는 TcpServerChannel 클래스의 새 인스턴스를 초기화합니다. |
TcpServerChannel(String, Int32, IServerChannelSinkProvider) |
지정된 이름을 사용하여 특정 포트에서 수신을 대기하며 특정 싱크를 사용하는 TcpServerChannel 클래스의 새 인스턴스를 초기화합니다. |
속성
ChannelData |
채널 관련 데이터를 가져옵니다. |
ChannelName |
현재 채널의 이름을 가져옵니다. |
ChannelPriority |
현재 채널의 우선 순위를 가져옵니다. |
IsSecured |
현재 채널이 보안 채널인지 여부를 나타내는 부울 값을 가져오거나 설정합니다. |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetChannelUri() |
현재 채널의 URI를 반환합니다. |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
GetUrlsForUri(String) |
현재 TcpChannel 인스턴스에 호스팅되었고 지정된 URI를 사용하는 개체의 모든 URL이 들어 있는 배열을 반환합니다. |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
Parse(String, String) |
지정된 URL에서 채널 URI와 잘 알려진 원격 개체 URI를 추출합니다. |
StartListening(Object) |
StopListening(Object) 메서드가 채널에서 수신 대기를 중지하도록 호출된 후 현재 채널이 채널에서 수신 대기를 시작하도록 지시합니다. |
StopListening(Object) |
현재 채널에게 요청 수신을 중지하도록 지시합니다. |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
적용 대상
.NET