freenode figured this out. Pasting here for future reference.<br><br><br><pre class="sourceCode haskell"><code><span class="kw">import</span> <span class="dt">Control.Concurrent</span><br><span class="kw">import</span> <span class="dt">Network</span><br>
<span class="kw">import</span> <span class="dt">System.IO</span><br><br>main :: <span class="dt">IO</span> ()<br>main <span class="fu">=</span> withSocketsDo <span class="fu">$</span> <span class="kw">do</span><br>    m &lt;- newEmptyMVar<br>
    forkIO (waitAndPong m)<br>    ping m<br><br><span class="co">-- The basic server</span><br>waitAndPong :: <span class="dt">MVar</span> () -&gt; <span class="dt">IO</span> ()<br>waitAndPong m <span class="fu">=</span> <span class="kw">do</span><br>
    socket &lt;- listenOn (<span class="dt">PortNumber</span> <span class="dv">8000</span>)<br>    putMVar m ()<br>    (handle,_,_) &lt;- accept socket<br>    hSetBuffering handle <span class="dt">LineBuffering</span><br>
    incoming &lt;- hGetLine handle<br>    <span class="fu">putStrLn</span> (<span class="st">&quot;&gt; &quot;</span> <span class="fu">++</span> incoming)<br>    hPutStrLn handle <span class="st">&quot;pong&quot;</span><br>
<br><span class="co">-- The basic client</span><br>ping :: <span class="dt">MVar</span> () -&gt; <span class="dt">IO</span> ()<br>ping m <span class="fu">=</span> <span class="kw">do</span><br>    _ &lt;- takeMVar m<br>    handle &lt;- connectTo <span class="st">&quot;localhost&quot;</span> (<span class="dt">PortNumber</span> <span class="dv">8000</span>)<br>
    hSetBuffering handle <span class="dt">LineBuffering</span><br>    hPutStrLn handle <span class="st">&quot;ping&quot;</span><br>    incoming &lt;- hGetLine handle<br>    <span class="fu">putStrLn</span> (<span class="st">&quot;&lt; &quot;</span> <span class="fu">++</span> incoming)</code><code><span class="kw"></span></code><br>
</pre><br><div class="gmail_quote">On Thu, Jan 20, 2011 at 6:17 PM, Michael Litchard <span dir="ltr">&lt;<a href="mailto:michael@schmong.org">michael@schmong.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
I tried this as an example and got the following error when running.<br><br>net.exe: connect: failed (Connection refused (WSAECONNREFUSED))<br><br>Firewall is off, running as administrator<br><br>Windows is Windows 7 Enterprise.<br>

<br>Advice on what to do next is appreciated<div><div></div><div class="h5"><br><br><div class="gmail_quote">On Tue, Nov 2, 2010 at 1:24 PM, Nils Schweinsberg <span dir="ltr">&lt;<a href="mailto:ml@n-sch.de" target="_blank">ml@n-sch.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Am 02.11.2010 19:57, schrieb Michael Litchard:<div><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
got any urls with examples?<br>
</blockquote>
<br></div>
Sure, see this short server-client-ping-pong application.<br>
<br>
By the way, I noticed that you don&#39;t need withSocketsDo on windows 7, but I guess it&#39;s there for a reason for older windows versions. :)<br>
<br>
<br>
<br>
    import Control.Concurrent<br>
    import Network<br>
    import System.IO<br>
<br>
    main :: IO ()<br>
    main = withSocketsDo $ do<br>
        forkIO waitAndPong<br>
        ping<br>
<br>
    -- The basic server<br>
    waitAndPong :: IO ()<br>
    waitAndPong = do<br>
        socket &lt;- listenOn (PortNumber 1234)<br>
        (handle,_,_) &lt;- accept socket<br>
        hSetBuffering handle LineBuffering<br>
        incoming &lt;- hGetLine handle<br>
        putStrLn (&quot;&gt; &quot; ++ incoming)<br>
        hPutStrLn handle &quot;pong&quot;<br>
<br>
    -- The basic client<br>
    ping :: IO ()<br>
    ping = do<br>
        handle &lt;- connectTo &quot;localhost&quot; (PortNumber 1234)<br>
        hSetBuffering handle LineBuffering<br>
        hPutStrLn handle &quot;ping&quot;<br>
        incoming &lt;- hGetLine handle<br>
        putStrLn (&quot;&lt; &quot; ++ incoming)<div><div></div><div><br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>