I forgot to mention the relevant changes that Rajeev did make to socket.xul.&nbsp; <br><br>C:\Program Files\GnuWin32\bin&gt;diff &quot;C:\Program Files\Mozilla Firefox\<br>63a64,65<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if( bytesAvailable &gt; 0 )<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>66,70c68,71<br>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; socketData.length;<br>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!theSocket.isConnected)<br>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; socketResults.value = &quot;the socket is closed&quot;;
<br>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>---<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; socketData.length;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; socketResults.value = &quot;the socket is closed&quot;;<br><div class="gmail_quote"><br>
On Dec 3, 2007 2:16 PM, Nick P &lt;<a href="mailto:nick.pend@gmail.com">nick.pend@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Rajeev,<br><br>I can confirm that this does work - I replaced my socket.js with your edited version.&nbsp; A diff shows these changes:<br><br>C:\Program Files\GnuWin32\bin&gt;diff &quot;C:\Program Files\Mozilla Firefox\chrome\jslib\network\socket.js&quot; &quot;C:\Program Files\Mozilla Firefox\chrome\jslib\network\socket.js.old&quot;
<br>25,26c25,26<br>&lt; //&nbsp;&nbsp;&nbsp;&nbsp; if (!this.isAlive())<br>&lt; //&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>---<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; if (!this.isAlive())<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<br>219,220c219,220<br>&lt;&nbsp;&nbsp;&nbsp;&nbsp; if (!this.available())<br>&lt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw &quot;
Socket.read: Nothing available.&quot;;<br>---<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; if (!this.isAlive())<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw &quot;Socket.read: Not Connected.&quot;;<br><br>C:\Program Files\GnuWin32\bin&gt;<br><br>------------------<br>So now, the Receive works as one would expect.&nbsp; The call from available in the demo still shows zero bytes - but this is probably because it calls isAlive before it calls available.&nbsp; It would make sense to change the demo so that the Available button would show the new functionality, although I haven&#39;t tested this.&nbsp; FYI, this is the demo&#39;s function call for the Available? button
<br><br>&nbsp;&nbsp;&nbsp; function availableSocket( theSocket )<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; statusMsg.value = ( theSocket.isAlive()<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ? &quot;socket has &quot; + theSocket.available() + &quot; bytes pending&quot;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; : &quot;socket is not connected&quot; );
<br>&nbsp;&nbsp;&nbsp; }<br><br><br>Pete, I hope you can use this.&nbsp; <br><br>Thanks Rajeev!<br><font color="#888888"><br>nick</font><div><div></div><div class="Wj3C7c"><br><div class="gmail_quote">On Dec 2, 2007 1:12 PM, Rajeev J Sebastian &lt;
<a href="mailto:rajeev.sebastian@gmail.com" target="_blank">rajeev.sebastian@gmail.com
</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello Nick,<br><br>I made a couple of changes to network/socket.js and samples/socket.xul ...
<br><br>I _believe_ it works with the socket server example that I had used<br>when testing with the Python client as I mentioned before.<br><br>I am attaching the socket.js and socket.xul with this email.<br><br>Sorry, I dont remember how to use CVS and I didnt think to maintain a
<br>pristine copy of jslib before making the changes, so I dont have<br>diffs. :/<br><br>I am also attaching the sample Python server/client with this email.<br><br>Meanwhile, i will give the testing one more go, just to make sure it
<br>actually does work.<br><br>Could you also verify it works with your example ?<br><br>Regards<br><font color="#888888">Rajeev J Sebastian<br></font><div><div></div><div><br>On Dec 2, 2007 10:10 AM, Nick P &lt;
<a href="mailto:nick.pend@gmail.com" target="_blank">nick.pend@gmail.com</a>&gt; wrote:<br>&gt; Thanks for the confirmation Rajeev.<br>&gt;<br>&gt; Pete (or anyone in the know here) &nbsp;- I don&#39;t know if you have time to look
<br>&gt; at this -- if you don&#39;t, but you could tell me some functions to start
<br>&gt; looking in in the library itself, I&#39;ll take a look. &nbsp;I know very little<br>&gt; about XPCOM but I might be able to turn something up.<br>&gt;<br>&gt; If I can clarify better let me know - in short, after a server sends data to
<br>&gt; a XUL/JS client, it closes a socket. &nbsp;Instead of the JSLib client still<br>&gt; being able to read the data that was sent to its socket, it sees zero bytes.<br>&gt; Expected behavior should be (I believe) that it can still read the data that
<br>&gt; was made available to it.<br>&gt;<br>&gt; Thanks,<br>&gt; Nick<br>&gt;<br>&gt;<br>&gt;<br>&gt; On Dec 1, 2007 11:51 AM, Rajeev J Sebastian &lt;<a href="mailto:rajeev.sebastian@gmail.com" target="_blank">rajeev.sebastian@gmail.com
</a>&gt;<br>&gt; wrote:<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; Hello Nick,<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; On Dec 1, 2007 4:33 AM, Nick P &lt;<a href="mailto:nick.pend@gmail.com" target="_blank">nick.pend@gmail.com
</a>
&gt; wrote:<br>&gt; &gt; &gt; I am still attempting to use JSLib as a client for a server. &nbsp;After the<br>&gt; &gt; &gt; server sends a reply message, it closes the socket. &nbsp;Up until the socket<br>&gt; is<br>&gt; &gt; &gt; closed by the server, the XUL client recognizes that there is data
<br>&gt; &gt; &gt; available. &nbsp;When I built a sample client in VB.net, I was able to read<br>&gt; the<br>&gt; &gt; &gt; available data even after the server closed the socket. &nbsp;However, with<br>&gt; the<br>&gt; &gt; &gt; JSLib sockets, I have been unable to get it to read the data after the
<br>&gt; &gt; &gt; server closes the socket.<br>&gt; &gt; &gt;<br>&gt; &gt;<br>&gt; &gt; &gt; Am I wrong that this data should still be available for reading, or is<br>&gt; this<br>&gt; &gt; &gt; unexpected behavior?<br>
&gt; &gt;
<br>&gt; &gt; I ran the equivalent with Python, and I can reproduce the above behaviour.<br>&gt; &gt;<br>&gt; &gt; I used a Python based socket server and client.(based on<br>&gt; &gt; <a href="http://docs.python.org/lib/socket-example.html" target="_blank">

http://docs.python.org/lib/socket-example.html</a>, only the server closes<br>&gt; &gt; the client after receving three times)<br>&gt; &gt;<br>&gt; &gt; With (unmodified) socket.xul , it just gives a message that the socket
<br>&gt; &gt; was closed. However, with the Python client, it returns the data.<br>&gt; &gt;<br>&gt; &gt; I havent done any extensive testing or anythign ... just a 15 minute job.<br>&gt; &gt;<br>&gt; &gt; Regards<br>&gt; &gt; Rajeev J Sebastian
<br>&gt; &gt; _______________________________________________<br>&gt; &gt; Jslib mailing list<br>&gt; &gt; <a href="mailto:Jslib@mozdev.org" target="_blank">Jslib@mozdev.org</a><br>&gt; &gt; <a href="https://www.mozdev.org/mailman/listinfo/jslib" target="_blank">

https://www.mozdev.org/mailman/listinfo/jslib</a><br>&gt; &gt;<br>&gt;<br>&gt;<br>&gt; _______________________________________________<br>&gt; Jslib mailing list<br>&gt; <a href="mailto:Jslib@mozdev.org" target="_blank">
Jslib@mozdev.org</a>
<br>&gt; <a href="https://www.mozdev.org/mailman/listinfo/jslib" target="_blank">https://www.mozdev.org/mailman/listinfo/jslib</a><br>&gt;<br>&gt;<br></div></div><br>_______________________________________________<br>Jslib mailing list
<br><a href="mailto:Jslib@mozdev.org" target="_blank">Jslib@mozdev.org</a><br><a href="https://www.mozdev.org/mailman/listinfo/jslib" target="_blank">https://www.mozdev.org/mailman/listinfo/jslib</a><br><br></blockquote>
</div><br>
</div></div></blockquote></div><br>