<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><span><br></span></div><div><br></div>  <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <div dir="ltr"> <font face="Arial" size="2"> <hr size="1">  <b><span style="font-weight: bold;">From:</span></b> Stanciu Alexandru &lt;the_marian_2006@yahoo.com&gt;<br> <b><span style="font-weight: bold;">To:</span></b> "so@cursuri.cs.pub.ro" &lt;so@cursuri.cs.pub.ro&gt; <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, April 3, 2012 12:30 PM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [so] Coada non-blocanta<br> </font> </div> <br>
<div id="yiv1371291778"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-family: times new roman,new york,times,serif; font-size: 12pt;"><div><span><br></span></div><div><br></div>  <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <div dir="ltr"> <font face="Arial" size="2"> <hr size="1">  <b><span style="font-weight: bold;">From:</span></b> Stanciu Alexandru &lt;the_marian_2006@yahoo.com&gt;<br> <b><span style="font-weight: bold;">To:</span></b> "so@cursuri.cs.pub.ro" &lt;so@cursuri.cs.pub.ro&gt; <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, April 3, 2012 12:09 PM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [so] Coada non-blocanta<br> </font> </div> <br>
<div id="yiv1371291778"><div><div style="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); font-family: times new roman,new york,times,serif; font-size: 12pt;"><div><br></div>  <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"> <div dir="ltr"> <font face="Arial" size="2"> <hr size="1">  <b><span style="font-weight: bold;">From:</span></b> Razvan Crainea &lt;razvan.crainea@gmail.com&gt;<br> <b><span style="font-weight: bold;">To:</span></b> Stanciu Alexandru &lt;the_marian_2006@yahoo.com&gt;; Sisteme de Operare &lt;so@cursuri.cs.pub.ro&gt; <br> <b><span style="font-weight: bold;">Sent:</span></b> Tuesday, April 3, 2012 11:55 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [so] Coada non-blocanta<br> </font> </div> <br>
2012/4/3 Stanciu Alexandru &lt;<a rel="nofollow" ymailto="mailto:the_marian_2006@yahoo.com" target="_blank" href="mailto:the_marian_2006@yahoo.com">the_marian_2006@yahoo.com</a>&gt;:<br>&gt;<br>&gt; Deci daca fac combinatiile:<br>&gt; 1. attr.mq_msgsize = sizeof(message_t) + 1 cu rc = mq_receive(q, (char<br>&gt; *)buf, sizeof(message_t), NULL); imi executa tot ce se afla sub<br>&gt; receive(coada este neblocanta) dar cand trimit ceva pe coada de la client nu<br>&gt; receptioneaza(se blocheaza)<br>&gt; 2. attr.mq_msgsize = sizeof(message_t)&nbsp; cu rc = mq_receive(q, (char *)buf,<br>&gt; sizeof(message_t) + 1, NULL);&nbsp; coada este blocanta; pana cand nu trimit ceva<br>&gt; pe coada, nu se executa nimic dupa receive<br>&gt; 3. attr.mq_msgsize = sizeof(message_t)&nbsp; cu rc = mq_receive(q, (char *)buf,<br>&gt; sizeof(message_t), NULL); ca la 2<br>&gt;<br>&gt; Declar coada ca fiind neblocanta; poate sa-mi zica si mie cineva unde<br>&gt; gresesc?(sterg
 toate cozile
 create)<br>&gt;<br>&gt;<br>&gt;Salut, Alexandru!<br>&gt;<br>&gt;Clientul încearcă și el să creeze coada blocant, dacă aceasta nu<br>&gt;există. Înainte de receive, apelează un mq_getattr și verifică dacă<br>&gt;flag-ul O_NONBLOCK este în continuare setat.<br>&gt;<br>&gt;-- <br>&gt;Răzvan Crainea<br>&gt;<br>&gt;Am asa:<br>&gt;<br>&gt;struct mq_attr attr;<br>&gt;&nbsp;&nbsp;&nbsp; attr.mq_flags = O_NONBLOCK;<br>&gt;&nbsp;&nbsp;&nbsp; attr.mq_maxmsg = 10;<br>&gt;&nbsp;&nbsp;&nbsp; attr.mq_msgsize = sizeof(message_t);<br>&gt;&nbsp;&nbsp;&nbsp; attr.mq_curmsgs = 0;<br>&nbsp;&gt; &nbsp; <br>&nbsp; &gt;&nbsp; cout &lt;&lt; "b: " &lt;&lt; attr.mq_flags &lt;&lt; endl;<br>&nbsp;&gt; &nbsp; q = mq_open("/gateway", O_CREAT | O_RDWR, 0644, &amp;attr);<br>&nbsp;&gt; &nbsp; struct mq_attr gttr;// = (mq_attr*) calloc (1, sizeof(mq_attr));<br>&nbsp;&gt; &nbsp; mq_getattr(q, &amp;gttr);<br>&nbsp;&gt; &nbsp; cout &lt;&lt; "e: " &lt;&lt; gttr.mq_flags &lt;&lt;
 endl;<br>&gt;<br>&gt;si in urma afisarii obtin(chiar si alocat
 dinamic):<br>&gt;b: 2048<br>&gt;e: 0<br>&gt;<br>&gt;Nici macar nu deschid clientul, doar programul meu.<br>&gt;<br>&gt;<br>&gt;Am pus si flagul O_NONBLOCK in mq_open. Credeam ca daca pun in acea structura nu o sa mai trebuiasca sa pun si acest flag. Si merge si doar cu sizeof(message_t); acum sa vad pe la teste, poate &gt;trebuie 8192:). <br>&gt;<br><br>In sfarsit am o coada neblocanta, dar problema originala de la care am plecat, nu a disparut. Gateway-ul ia un mesaj de la client si ii trimite serverului care trebuie sa faca decriptarea un mesaj in care actualizez name, dim si crypt[0]. La server ajunge mesajul, name este corect, dar dim si crypt[0] sunt 0. Am dat la receive si attr.mq_msgsize tot felul de valori. Pe partea cealalta ajunge doar name corect. Ce problema ar mai putea sa fie aici?<br><br><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></div></div><br><br> </div> </div>  </div></body></html>