<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>tag:www.local-guru.net,2005:/blog/tag/oscdispach</id>
  <link type="text/html" href="http://www.local-guru.net" rel="alternate"/>
  <link type="application/atom+xml" href="http://www.local-guru.net/blog/tag/oscdispach.atom" rel="self"/>
  <title>GuruBlog : Articles about oscdispach</title>
  <subtitle>local-guru.net</subtitle>
  <updated>2009-03-07T08:51:00+01:00</updated>
  <generator>GuruBlog engine</generator>
  <entry>
    <id>tag:www.local-guru.net,2005:Article/133</id>
    <published>2009-03-07T08:51:00+01:00</published>
    <updated>2009-03-07T08:51:00+01:00</updated>
    <link type="text/html" href="http://www.local-guru.net//blog/2009/3/7/oscdispatch-0-1" rel="alternate"/>
    <author>
      <name>Nikolaus Gradwohl</name>
    </author>
    <title type="html">oscdispatch 0.1</title>
    <category term="osc" scheme="http://www.local-guru.net/blog/tag/osc"/>
    <category term="erlang" scheme="http://www.local-guru.net/blog/tag/erlang"/>
    <category term="oscdispach" scheme="http://www.local-guru.net/blog/tag/oscdispach"/>
    <content type="html">&lt;p&gt;I finished the first version of my &lt;a href="http://www.local-guru.net/blog/pages/oscdispatch"&gt;OSCDispatch&lt;/a&gt; server in erlang.&lt;/p&gt;

&lt;p&gt;The program defines a generic server and uses a callback function for the dispaching rules.&lt;/p&gt;

&lt;p&gt;the oscdispatch.erl looks like this and uses a parameter in the module definition&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;-module(oscdispatch, [Dispatch]).
-export([start_server/0]).
-include("server_config.hrl").

start_server() -&amp;gt;
    spawn( fun() -&amp;gt; server(?server_port) end ).

server(Port) -&amp;gt;
    {ok, Socket} = gen_udp:open( Port, [binary] ),
    io:format( "socked opened ~p~n ", [Socket]),
    loop(Socket).

loop(Socket) -&amp;gt;
    receive
        {udp, Socket, Host, Port, Bin} -&amp;gt;
            Adr = binary_to_list(util:getadr(Bin)),
            io:format( "got: ~p~n", [{Host, Port, Adr}]),
            Dispatch:dispatch( Adr, Bin ),
            loop(Socket)
    end.
&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
</feed>

