получить из сокета, а также из другого процесса Erlang - PullRequest
1 голос
/ 17 февраля 2010

в процессе Erlang, как я могу получить из ssl-сокета и в то же время получить от другого процесса erlang с примитивом получения?

идея состоит в том, чтобы переслать то, что приходит из сокета, в другой процесс; и назад.

Моя единственная возможность на данный момент - использовать некоторое время для получения с каждого конца, а затем переключаться. это, конечно, задержит обработку сообщений, полученных на одном интерфейсе, при получении с другого. Вы видите какой-либо другой способ сделать это? если бы только Эрланг позволил мне использовать один процесс для получения из сокета, а другой - для отправки в сокет ...

Ответы [ 2 ]

2 голосов
/ 18 февраля 2010

Не уверен, что понимаю ваш вопрос; в любом случае, вы можете иметь несколько «предложений» в операторе получения, поэтому он становится «разблокированным» при получении чего-либо с любой стороны:

loop() ->
  receive
    {ssl, Msg} ->  % incoming msg from SSL, send it to process
      Proc ! Msg,
      loop();
    {proc, Msg} -> % incoming msg from process, send it to SSL
      SSL ! Msg,
      loop()
  end.

Важно то, что вам нужно форматировать сообщения таким образом, чтобы вы могли различать SSL и обрабатывать сообщения с сопоставлением с шаблоном.

0 голосов
/ 17 февраля 2010

В любом случае вы получите сообщение от (например) HTTP_Client в процессе с помощью оператора receive. Вы сможете легко очертить «разговоры»:

{http, {RequestId, Result}} для HTTP_Client "разговоры"

Подробнее см. здесь .

...