2012-01-18 1 views
1

Можно создать дубликат:
Identifying the client during a .NET remoting invocationКак узнать, какой клиент вызвал метод в .NET Remoting?

У меня есть приложение клиент/сервер, в котором на стороне сервера часть издает статический объект таким образом:

RemotingServices.Marshal(rem, "testRemoteObject"); 

Многие клиента -парные части соединяются с ним одновременно через:

TestInterface remote = (TestInterface)RemotingServices.Connect(typeof(TestInterface), 
      "tcp://localhost:4500/testRemoteObject"); 

Все работает отлично, но мне нужно определить, на стороне сервера, который клиент вызывает метод, например:

public void PrintMsg(string msg) 
{ 
    Console.WriteLine("Message from client: " + msg); 
} 

Я вижу один путь: каждый клиент отправляет свой идентификатор в качестве аргумента метода, но в этом клиенты могут отправлять идентификатор другого клиента. Как я могу делать то, что хочу?

+0

Если это не идентификатор, как вы отличаете клиентов? – Azodious

ответ

0

Если вы не используете шаблон удаленного размещения, где создается объект для каждого клиента, в этом случае вы можете использовать некоторую магию (чтобы я забыл OTOH), чтобы хранить клиента в поле/свойстве, я не верю, что есть далеко.