<br><br><div class="gmail_quote">On 14 April 2012 17:41, Khalid Al-Ghamdi <span dir="ltr">&lt;<a href="mailto:emailkgnow@gmail.com">emailkgnow@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi All,<div><br></div><div>(python 3.2 on windows)</div><div><br></div><div>I have a couple of questions regarding the below code:</div><div><br></div><div>1- In line (15), what are these variables <span style="line-height:21px;font-size:12px;font-family:Consolas,Menlo,Monaco,&#39;Lucida Console&#39;,&#39;Liberation Mono&#39;,&#39;DejaVu Sans Mono&#39;,&#39;Bitstream Vera Sans Mono&#39;,monospace,serif">tcpCliSock</span><span style="line-height:21px;color:rgb(102,204,102);font-size:12px;font-family:Consolas,Menlo,Monaco,&#39;Lucida Console&#39;,&#39;Liberation Mono&#39;,&#39;DejaVu Sans Mono&#39;,&#39;Bitstream Vera Sans Mono&#39;,monospace,serif">,</span><span style="line-height:21px;font-size:12px;font-family:Consolas,Menlo,Monaco,&#39;Lucida Console&#39;,&#39;Liberation Mono&#39;,&#39;DejaVu Sans Mono&#39;,&#39;Bitstream Vera Sans Mono&#39;,monospace,serif"> </span><span style="line-height:21px;font-size:12px;font-family:Consolas,Menlo,Monaco,&#39;Lucida Console&#39;,&#39;Liberation Mono&#39;,&#39;DejaVu Sans Mono&#39;,&#39;Bitstream Vera Sans Mono&#39;,monospace,serif">addr</span> supposed to hold and do?</div>


<div>2- Why do I have to specify the buffer size and what does it mean?</div><div>3- <span>When I try to run the below code and its corresponding client it works ok for the first time, but then it gives me this error:</span><div>

<br></div><div><div>Traceback (most recent call last):</div><div>  File &quot;C:\Python32\Khalid Stuff\tsTserv3.py&quot;, line 12, in &lt;module&gt;</div><div>    tcpSerSock.bind(ADDR)</div><div>socket.error: [Errno 10048] Only one usage of each socket address (protocol/network address/port) is normally permitted</div>

</div><div><br></div><div>I thought it had to do with  the address so I changed the port and it worked ok. so,:</div><div><br></div><div>A/ isn&#39;t the optional tcpSerSock.close() supposed to close the connection for later reuse?</div>

<div>B/ why is it when i go to the IDLE and enter tcpSerSock.close() and it accepts it, it still gives the same error and doesn&#39;t close the connection for reuse by my code?</div><div><br></div><div>Thanks a lot</div>

<div><br></div><div><div style="border-bottom-width:1px;border-top-style:solid;margin-bottom:10px;border-right-style:solid;border-bottom-color:rgb(238,238,238);border-top-width:1px;border-bottom-style:solid;line-height:24px;margin-right:0px;border-top-color:rgb(238,238,238);border-left-color:rgb(238,238,238);color:rgb(24,24,24);border-left-style:solid;border-right-color:rgb(238,238,238);font-size:16px;margin-left:0px;border-right-width:1px;font-family:&#39;segoe ui&#39;,&#39;trebuchet MS&#39;,&#39;Lucida Sans Unicode&#39;,&#39;Lucida Sans&#39;,sans-serif;margin-top:0px;border-left-width:1px">


<div style="background-color:rgb(248,248,248);border-top-width:1px;border-right-width:1px;border-bottom-width:1px;border-left-width:1px;border-top-style:solid;border-right-style:solid;border-bottom-style:solid;border-left-style:solid;border-top-color:rgb(221,221,221);border-right-color:rgb(221,221,221);border-bottom-color:rgb(221,221,221);border-left-color:rgb(221,221,221);font-size:12px;line-height:21px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px">


<div style="color:rgb(172,172,172);font-family:Consolas,Menlo,Monaco,&#39;Lucida Console&#39;,&#39;Liberation Mono&#39;,&#39;DejaVu Sans Mono&#39;,&#39;Bitstream Vera Sans Mono&#39;,monospace,serif"><ol style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:48px">


<li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


<span style="color:rgb(255,119,0);font-weight:bold">from</span> <span style="color:rgb(220,20,60)">socket</span> <span style="color:rgb(255,119,0);font-weight:bold">import</span> *</div>
</li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


<span style="color:rgb(255,119,0);font-weight:bold">from</span> <span style="color:rgb(220,20,60)">time</span> <span style="color:rgb(255,119,0);font-weight:bold">import</span> ctime</div>
</li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


 </div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


HOST <span style="color:rgb(102,204,102)">=</span> <span style="color:rgb(72,61,139)">&#39;&#39;</span></div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial">
<div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


PORT <span style="color:rgb(102,204,102)">=</span> <span style="color:rgb(255,69,0)">21567</span></div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial">
<div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


BUFSIZ <span style="color:rgb(102,204,102)">=</span> <span style="color:rgb(255,69,0)">1024</span></div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial">
<div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


ADDR <span style="color:rgb(102,204,102)">=</span><span>(</span>HOST<span style="color:rgb(102,204,102)">,</span> PORT<span>)</span></div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial">


<div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


 </div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


tcpSerSock <span style="color:rgb(102,204,102)">=</span> <span style="color:rgb(220,20,60)">socket</span><span>(</span>AF_INET<span style="color:rgb(102,204,102)">,</span> SOCK_STREAM<span>)</span></div>
</li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


tcpSerSock.<span>bind</span><span>(</span>ADDR<span>)</span></div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial">
<div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


tcpSerSock.<span>listen</span><span>(</span><span style="color:rgb(255,69,0)">5</span><span>)</span></div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial">
<div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


 </div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


<span style="color:rgb(255,119,0);font-weight:bold">while</span> <span style="color:rgb(0,128,0)">True</span>:</div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial">


<div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


    <span style="color:rgb(255,119,0);font-weight:bold">print</span><span>(</span><span style="color:rgb(72,61,139)">&#39;waiting for connection ...&#39;</span><span>)</span></div>
</li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


    tcpCliSock<span style="color:rgb(102,204,102)">,</span> addr <span style="color:rgb(102,204,102)">=</span> tcpSerSock.<span>accept</span><span>(</span><span>)</span></div>
</li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


    <span style="color:rgb(255,119,0);font-weight:bold">print</span><span>(</span><span style="color:rgb(72,61,139)">&#39;...connected from: &#39;</span><span style="color:rgb(102,204,102)">,</span> addr<span>)</span></div>


</li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


 </div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


    <span style="color:rgb(255,119,0);font-weight:bold">while</span> <span style="color:rgb(0,128,0)">True</span>:</div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial">


<div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


        data <span style="color:rgb(102,204,102)">=</span> tcpCliSock.<span>recv</span><span>(</span>BUFSIZ<span>)</span></div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial">


<div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


        <span style="color:rgb(255,119,0);font-weight:bold">if</span> <span style="color:rgb(255,119,0);font-weight:bold">not</span> data:</div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial">


<div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


            <span style="color:rgb(255,119,0);font-weight:bold">break</span></div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


        tcpCliSock.<span>send</span><span>(</span><span style="color:rgb(220,20,60)">bytes</span><span>(</span><span style="color:rgb(72,61,139)">&#39;[{}] {}&#39;</span>.<span>format</span><span>(</span>ctime<span>(</span><span>)</span><span style="color:rgb(102,204,102)">,</span>data.<span>decode</span><span>(</span><span style="color:rgb(72,61,139)">&#39;utf-8&#39;</span><span>)</span><span>)</span><span style="color:rgb(102,204,102)">,</span><span style="color:rgb(72,61,139)">&#39;utf-8&#39;</span><span>)</span><span>)</span></div>


</li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


 </div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial"><div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


    tcpCliSock.<span>close</span><span>(</span><span>)</span></div></li><li style="background-image:initial;background-color:rgb(255,255,255);background-repeat:initial initial">
<div style="padding-top:0px;padding-right:5px;padding-bottom:0px;padding-left:5px;vertical-align:top;color:rgb(0,0,0);border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);margin-top:0px;margin-right:0px;margin-bottom:0px;background-image:initial">


tcpSerSock.<span>close</span><span>(</span><span>)</span></div></li></ol></div></div></div><div style="border-bottom-width:1px;padding-right:0px;padding-left:22px;padding-top:0px;font-weight:700;padding-bottom:5px;border-bottom-color:rgb(204,204,204);border-bottom-style:dotted;line-height:24px;color:rgb(51,51,51);font-size:16px;font-family:&#39;segoe ui&#39;,&#39;trebuchet MS&#39;,&#39;Lucida Sans Unicode&#39;,&#39;Lucida Sans&#39;,sans-serif;background-repeat:no-repeat no-repeat">


<br></div></div></div></div></blockquote><div><br>In response to question A:<br>From python docs:<br><a href="http://docs.python.org/py3k/library/socket.html?highlight=socket.close#socket.socket.close">http://docs.python.org/py3k/library/socket.html?highlight=socket.close#socket.socket.close</a><br>
<dl class="method"><dd><p>Close the socket.  All future operations on the socket object will fail. The
remote end will receive no more data (after queued data is flushed). Sockets are
automatically closed when they are garbage-collected.</p>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last"><a class="reference internal" href="http://docs.python.org/py3k/library/socket.html?highlight=socket.close#socket.socket.close" title="socket.socket.close"><tt class="xref py py-meth docutils literal"><span class="pre">close()</span></tt></a> releases the resource associated with a connection but
does not necessarily close the connection immediately.  If you want
to close the connection in a timely fashion, call <a class="reference internal" href="http://docs.python.org/py3k/library/socket.html?highlight=socket.close#socket.socket.shutdown" title="socket.socket.shutdown"><tt class="xref py py-meth docutils literal"><span class="pre">shutdown()</span></tt></a>
before <a class="reference internal" href="http://docs.python.org/py3k/library/socket.html?highlight=socket.close#socket.socket.close" title="socket.socket.close"><tt class="xref py py-meth docutils literal"><span class="pre">close()</span></tt></a>.</p>
</div></dd></dl><p>Bodsda<br></p><br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div style="border-bottom:1px dotted rgb(204,204,204);padding:0px 0px 5px 22px;font-weight:700;line-height:24px;color:rgb(51,51,51);font-size:16px;font-family:&#39;segoe ui&#39;,&#39;trebuchet MS&#39;,&#39;Lucida Sans Unicode&#39;,&#39;Lucida Sans&#39;,sans-serif">
</div></div><div><br></div></div></div>
<br>_______________________________________________<br>
Tutor maillist  -  <a href="mailto:Tutor@python.org">Tutor@python.org</a><br>
To unsubscribe or change subscription options:<br>
<a href="http://mail.python.org/mailman/listinfo/tutor" target="_blank">http://mail.python.org/mailman/listinfo/tutor</a><br>
<br></blockquote></div><br>