<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12pt"><div id="yiv7962914981"><div><div style="color:#000;background-color:#fff;font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12pt;"><div id="yiv7962914981yui_3_16_0_5_1410004464731_4"><span id="yiv7962914981yui_3_16_0_5_1410004464731_14">Manlio, stai scherzando vero?</span></div><div id="yiv7962914981yui_3_16_0_5_1410004464731_16" style="color:rgb(0, 0, 0);font-size:16px;font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;background-color:transparent;font-style:normal;"><span id="yiv7962914981yui_3_16_0_5_1410004464731_14">Stai dicendo che il trasporto udp è più affidabile del tcp (best effort)?<br>ciacia<br></span></div> <div class="qtdSeparateBR"><br><br></div><div class="yiv7962914981yqt2564355285"
 id="yiv7962914981yqt69574"><div class="yiv7962914981yahoo_quoted" id="yiv7962914981yui_3_16_0_5_1410004464731_7" style="display: block;"> <div class="yiv7962914981yui_3_16_0_1_1410004464731_11466" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12pt;"> <div class="yiv7962914981yui_3_16_0_1_1410004464731_11467" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:12pt;"> <div dir="ltr"> <font size="2" face="Arial"> Il Venerdì 5 Settembre 2014 12:04, Manlio Perillo <manlio.perillo@gmail.com> ha scritto:<br clear="none"> </font> </div>  <br clear="none"><br clear="none"> <div class="yiv7962914981y_msg_container"><div id="yiv7962914981"><div><div dir="ltr"><div class="yiv7962914981gmail_extra"><div class="yiv7962914981gmail_quote">2014-09-04 12:19 GMT+02:00 Remo The Last <span dir="ltr"><<a rel="nofollow" shape="rect"
 ymailto="mailto:py.remothelast@yahoo.it" target="_blank" href="mailto:py.remothelast@yahoo.it">py.remothelast@yahoo.it</a>></span>:<br clear="none"><blockquote class="yiv7962914981gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex;"><div><div class="yiv7962914981yui_3_16_0_1_1410004464731_11470" style="color:rgb(0,0,0);font-family:HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;font-size:12pt;background-color:rgb(255,255,255);"><div>Buongiorno lista.</div><div>Continuando la mia programmazione relativa all'invio di segnali hex, ho potuto confermare quanto letto in linea che un server python con flag MSG_OOB</div></div></div></blockquote><div><br clear="none"></div><div>Perchè mai usi MSG_OOB, ossia messaggi fuori banda,  la cui semantica è implementation specific?</div><div><a rel="nofollow" shape="rect" target="_blank"
 href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/send.html">http://pubs.opengroup.org/onlinepubs/9699919799/functions/send.html</a></div><div><a rel="nofollow" shape="rect" target="_blank" href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/recv.html">http://pubs.opengroup.org/onlinepubs/9699919799/functions/recv.html</a><br clear="none"></div><div> </div><blockquote class="yiv7962914981gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex;"><div><div class="yiv7962914981yui_3_16_0_1_1410004464731_11472" style="color:rgb(0,0,0);font-family:HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;font-size:12pt;background-color:rgb(255,255,255);"><div> crasha sempre. E questa è una conferma.</div><div><br clear="none"></div></div></div></blockquote><div><br clear="none"></div><div>Cosa intendi con
 crasha?</div><div>Per me (e per molti altri) crashare significa andare in segfault, ma dubito che sia questo il caso.</div><div>Probabilmente intendi che  viene sollevata una eccezione, che dovrebbe darti utili informazioni aggiuntive.</div><div> </div><blockquote class="yiv7962914981gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex;"><div><div class="yiv7962914981yui_3_16_0_1_1410004464731_11474" style="color:rgb(0,0,0);font-family:HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;font-size:12pt;background-color:rgb(255,255,255);"><div></div><div class="yiv7962914981yui_3_16_0_1_1410004464731_11475" style="color:rgb(0,0,0);font-size:16px;font-family:HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;font-style:normal;background-color:transparent;">Ma è anche vero che un socket client con flag
 MSG_OOB taglia a destra di un byte il messaggio da inviare.</div></div></div></blockquote><div><br clear="none"></div><div>Come saprai, se fai un send(N bytes) e recv(N bytes) non è detto che recv ti restituisca esattamente N bytes, ma di solito qualcosa in meno.</div><div><br clear="none"></div><div>Il tutto poi è complicato dall'uso dei messaggi out-of-band.</div><div>Che tipo di socket stai usando?</div><div>Che sistema operativo?</div><div class="yiv7962914981yqt7670974131" id="yiv7962914981yqtfd94352"><div> </div></div><blockquote class="yiv7962914981gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex;"><div><div class="yiv7962914981yui_3_16_0_1_1410004464731_11477" style="color:rgb(0,0,0);font-family:HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;font-size:12pt;background-color:rgb(255,255,255);"><div
 class="yiv7962914981yqt7670974131" id="yiv7962914981yqtfd86486"><div class="yiv7962914981yui_3_16_0_1_1410004464731_11478" style="color:rgb(0,0,0);font-size:16px;font-family:HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;font-style:normal;background-color:transparent;"> L'ho potuto appurare sia in locale con una semplice applicazione client-server ma anche su un mio server remoto. In intrambi i casi il messaggio è risultato tagliato a destra di una byte.
 Tipo: msg="hello world" e arriva "hello worl". Per ovviare allungo di un byte il
 messaggio e questo arriva completo come messaggio da invio originale.</div></div><div class="yiv7962914981yui_3_16_0_1_1410004464731_11479" style="color:rgb(0,0,0);font-size:16px;font-family:HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;font-style:normal;background-color:transparent;"><br clear="none"></div></div></div></blockquote><div><br clear="none"></div><div>Questo è un errore molto comune tra chi si avvicina alla programmazione di rete.</div><div>Quando invii qualcosa via socket di tipo stream devi **sempre** usare un protocollo che permetta a chi riceve i dati di capire dove inizia e dove finisce un "messaggio".</div><div><br clear="none"></div><div>In particolare, se vuoi spedire messaggi brevi in modo facile, usa i socket di tipo SOCK_DGRAM invece di SOCK_STREAM, ma assicurati di capire come funzionano.<br clear="none"></div><div><br clear="none"></div><div>Ciao
  Manlio </div></div></div></div></div></div><br clear="none"><br clear="none"></div>  </div> </div>  </div></div> </div></div></div></div></body></html>