<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET Framework</title><link>https://www.dotnetzone.gr:443/cs/forums/14/ShowForum.aspx</link><description>Θέματα για threading, remoting, reflection, exception handling, security, regex κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Υπάρχει τρόπος να ξέρω αν ένα network connection έχει κλείσει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14756.aspx</link><pubDate>Fri, 14 Jul 2006 23:37:35 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14756</guid><dc:creator>mod</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14756.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14756</wfw:commentRss><description>Τελικά βρήκα τι έφταιγε, ηταν δικό μου bug στην καταμέτρηση των δεδομένων που ήρθαν από το socket. Η τεχνική που χρησιμοποίησα πιο πάνω με το Poll &amp;amp; Receive λειτουργεί σωστά.</description></item><item><title>Απ: Υπάρχει τρόπος να ξέρω αν ένα network connection έχει κλείσει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14528.aspx</link><pubDate>Sat, 08 Jul 2006 20:57:35 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14528</guid><dc:creator>mod</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14528.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14528</wfw:commentRss><description>Τελικά έβαλα locks γύρω από κάθε ενεργεια πάνω στα sockets αλλά το πρόβλημα δεν προκύπτει απο κει. Στις μεταφορές μικρών πακέτων δεν υπάρχει κανένα πρόβλημα. &lt;br /&gt;
&lt;br /&gt;
Είτε όμως κάνω αυτό τον έλεγχο για το αν έχει πέσει η σύνδεση είτε όχι διαπίστωσα οτι αν πάω να διαβάσω κάτι (μεταφέρω αρχεία με ένα δικό μου πρωτόκολλο) που έχει μέγεθος πάνω από 8Μ με κάποιο τρόπο χάνονται 68 bytes  και τώρα προσπαθώ να καταλάβω τι ακριβώς είναι αυτό που χάνεται. Μάλλον θα σώσω σε άλλο αρχείο αυτό που φτάνει στην άλλη μεριά και θα κάνω diff.</description></item><item><title>Απ: Υπάρχει τρόπος να ξέρω αν ένα network connection έχει κλείσει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14522.aspx</link><pubDate>Sat, 08 Jul 2006 10:01:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14522</guid><dc:creator>anjelinio</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14522.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14522</wfw:commentRss><description>Δοκίμασε να lock-άρεις το input stream του socket πρίν απο κάθε προσπάθεια να διαβάσεις απο αυτό, και για όλη τη διάρκειά της.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description></item><item><title>Απ: Υπάρχει τρόπος να ξέρω αν ένα network connection έχει κλείσει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14490.aspx</link><pubDate>Fri, 07 Jul 2006 06:49:08 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14490</guid><dc:creator>mod</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14490.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14490</wfw:commentRss><description>Νομίζω πως κάτι βρήκα. Έβαλα ένα άλλο thread να κάνει περιοδικά Poll με
SelectRead και αν επιστρέψει true (που σημαίνει οτι ενδεχομένως έχει
κλείσει η σύνδεση) κάνω&lt;br&gt;
&lt;br&gt;
&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;if&lt;/span&gt;(socket.Receive(buffer, 0, 1, SocketOptions.Peek, &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;out&lt;/span&gt; error) &amp;lt;= 0)&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: Green;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;//the connection has closed, ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;br&gt;
&lt;br&gt;
Το πρόβλημα τώρα είναι οτι παρά το γεγονός οτι χρησιμοποιώ Peek αν
εκείνη την ώρα το κύριο thread διαβάζει παρατήρησα οτι μου τρώει bytes
από το Stream. Καμιά ιδέα?</description></item><item><title>Υπάρχει τρόπος να ξέρω αν ένα network connection έχει κλείσει?</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/14481.aspx</link><pubDate>Fri, 07 Jul 2006 02:56:42 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:14481</guid><dc:creator>mod</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/14481.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=14&amp;PostID=14481</wfw:commentRss><description>Καταρχήν χαιρετώ άπαντες, καθώς είναι η πρώτη φορά που γράφω στο φόρουμ.&lt;br&gt;&lt;br&gt;Τις τελευταιες μερες γράφω μια Client-Server εφαρμογή σε C# και χρειάζομαι τη βοήθειά σας.&lt;br&gt;Το πρόβλημά μου είναι το εξής: Προσπαθώ να βρω ένα τρόπο να διαπιστώσω αν η εφαρμογή στην άλλη&lt;br&gt;άκρη έχει 'πεθάνει' ή απλά έχει κάνει disconnect. Μιλάω για επικοινωνία πάνω από Tcp Connection.&lt;br&gt;&lt;br&gt;Καταρχήν το Socket δεν διαθέτει κάποιο ανάλογο event ώστε να ενημερώσει ότι κάτι τρέχει. To Connected&lt;br&gt;property του παραμένει true ακόμα και αν έχει τερματιστεί η εφαρμογή-cliεnt. Το ίδιο συμβαίνει και με το &lt;br&gt;NetworkStream που παίρνω από τον αντίστοιχο TcpClient, στο οποίο αν καλέσω τη μέθοδο ReadByte() &lt;br&gt;παίρνω πίσω -1. Δοκίμασα να κάνω Poll για SelectError &amp;amp; SelectWrite στο socket αλλά πάλι no luck. Το να &lt;br&gt;κάνω Poll για SelectRead δεν έχει νόημα, καθώς σύμφωνα με το documentation, θα επιστρέψει:&lt;br&gt;"&lt;table style="width: 389px; height: 220px;" cellpadding="5" cellspacing="2"&gt;&lt;tr&gt;
&lt;th&gt;
&lt;p&gt;&lt;font size="2"&gt;Mode &lt;/font&gt;&lt;/p&gt;&lt;/th&gt;
&lt;th&gt;
&lt;p&gt;&lt;font size="2"&gt;Return Value &lt;/font&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;font size="2"&gt;SelectRead&lt;/font&gt; 
&lt;/p&gt;&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;b&gt;true&lt;/b&gt; if &lt;a&gt;Listen&lt;/a&gt; has been 
called and a connection is pending; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;-or- &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;&lt;b&gt;true&lt;/b&gt; if data is available for reading; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;-or- &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#ff0000" size="2"&gt;&lt;b&gt;true&lt;/b&gt; if the connection has been closed, reset, or terminated; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;otherwise, returns &lt;b&gt;false&lt;/b&gt;. &lt;/font&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;"&lt;br&gt;&lt;br&gt;Για να μην μακρυγορώ, υπάρχει κάποιος τρόπος να γίνει αυτό που προσπαθώ?&lt;br&gt;</description></item></channel></rss>