Warning Nu esti autentificat. Te rog autentifica-te sau inregistreaza-te pentru a avea acces la toate facilitatile forumului.
SkullBox  
Noiembrie 22, 2008, 02:50:14 pm
Bine ai venit, Vizitator. Trebuie să te autentifici sau să îţi creezi un cont.
Ai pierdut sau nu ai primit emailul care conţine codul de activare al contului?

Autentifică-te cu numele de utilizator, parola şi precizează durata sesiunii.
Noutăţi: ImageSL - Gazduire de imagini, gratuita
 
 SkullBoxDirector webTutoriale  Pagina principală   Ajutor Caută Autentificare Creează un cont  
Pagini: [1]
  Imprimă  
Subiect: Patratele ..  (Citit de 784 ori)
0Utilizatori şi 1 Vizitatori
!_30
Hero Member
*****
Deconectat Deconectat

Gen: Bărbat
Mesaje: 563



WWW
Patratele .., Decembrie 19, 2006, 12:40:34 pm

Poate are o idee' cineva  Tongue

Salut !

Atac si eu cu o intrebare "proasteasca" ( cred ).  :lol:  ( e Java )

Am un cod sursa de genu ( pentru primire de date ).

Cod:


InputStream is = null;

try {
     
        is = new DataInputStream(socket.getInputStream());  // socket este descriptorul al carui socket l'am deschis deja ( e bine ).
         
  }
catch (IOException e) {
          // ceva ..
        }
String line;// stringul in care primesc datele ..
           
            BufferedReader reader = new BufferedReader(new InputStreamReader(is));

for (;;)
{
try {
  line = reader.readLine();}
catch (IOException e) {
          // ceva ..
        }
System.out.println(line);
}
}


Chestia tare ( s'ar putea sa fie ceva simplu ) , e ca'mi afiseaza mesajul cu o gramada de patratele inainte . Sa fie de la UNICODE ? ( Serverul trimite bine ). Ca mesajul ajunge OK , insa are alaturate o gramada de patratele Straight face

Daca fac urmatoarea schimbare :

Cod:


           

for (;;)
{
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
  line = reader.readLine();}
catch (IOException e) {
          // ceva ..
        }
System.out.println(line);
}


- nu mai primeste tot ce avea de primit Straight face
Daca are careva vreo idee ? Parerea mea este ca umple tot Stringul cu patratele si la sfarsit lasa mesaje .. eu vreau sa primesc mesajul fara patratele . ( P.S. : nu le accepta patratelele/patratele sa le dau paste aici , probabil UNICODE ceva.. ).

O idee ar fi ca daca "introduc" , BufferedReader reader = new BufferedReader(new InputStreamReader(is)); in for(batting eyelashes , se pierde de fiecare data tot fisierul cu ce primesc de la server , asa lasat "inafara" trimite tot clientului . Insa cu patratele . Am vazut eu ca functia e DEPRECATED . :?

Mersi ! Oops
Memorat

We live in a very special time in the evolution of the universe: the time at which we can observationally verify that we live in a very special time in the evolution of the universe!" (John Timmer)
Blog
3Nigma
Hero Member
*****
Deconectat Deconectat

Gen: Bărbat
Mesaje: 969


SkullBox Guardian


WWW
Patratele .., Decembrie 19, 2006, 03:52:36 pm

hm...poate pot sa te ajut...din cate stiu eu in c#[care ii asemanator ca Java] serverul care trimite aceste date le trimite tot printr-un obiect de genul StreamWriter[sau in cazul java BufferWriter,nu?Desi poate gresesc aici ... dau cu banu in cazul Java Smile ] ok ideea e ca dupa ce trimiti un mesaj printr-un astfel de obiect trebuie sa dai Flush la buffer[cel putin asa e in c#] si ai grija cu modul in care trimiti datele . Banuiesc ca un obiect instantat ca BufferWriter are o metoda Send care ,asemeni C#-ului, accepta un array de bytes,ai griji la conversia stringului in bytes poate da batai de cap.
Memorat


Search for knowledge in the darkest places and in the blackest hours! You might get lucky and find more than you are looking for...
!_30
Hero Member
*****
Deconectat Deconectat

Gen: Bărbat
Mesaje: 563



WWW
Patratele .., Decembrie 19, 2006, 05:03:44 pm

Hai ca s'ar putea sa ne intelegem , dar eu trimite datele din C .  Oops  Codul este urmatorul :

Cod:


if (send(k,init,sizeof(init),0)==-1)        { perror("send");}  // e un for care trimite cand e nevoie .. stringul init .
k - este socketul destinarului .


Faza este ca atunci cand le primesc in Java : pe codul urmator :
Cod:

String line;
is = new BufferedReader(new InputStreamReader(clientSocket1.getInputStream()));
 for (;;) { // loop de primire date ..
line = clientSocket1.readLine()
}



Primul String mi'l afiseaza frumos , urmatoarele le afiseaza cu o gramada de patratele inainte de string'ul propiu'zis.

Chestia e ca daca fac ceva de genu :  ( daca bag instantierea is in for ( loop for ).

Cod:

String line;
for(;;){ // loop for
is = new BufferedReader(new InputStreamReader(clientSocket1.getInputStream()));
line=clientSocket1.readLine();
}


Primesc bine datele , insa tot ce am trimis din C ( intr'o structura repetitiva , nu primeste Straight face ).

Practic daca am exemplul imediat de mai sus si trimit din C codul :

Cod:

for(i=1;i<10;i++)
{ if (send(k,init,sizeof(init),0)==-1)        { perror("send");}  } // trimit de 10 ori ( din for ) clientSocket1'ului din Java ..

 el nu primeste ..

dar daca fac ca in exemplul 1 si introduc is = new BufferedReader(new InputStreamReader(clientSocket1.getInputStream())); in for (; ; ) el primeste OK TOATE datele , PRIMUL string corect , insa urmatoarele cu multe patratele inainte Straight face


Nu stiu daca m'am facut inteles , dar cred ca nu e nimic de conversie si doar de primire date .. si ceva cu metoda readLine() , care nu citeste chiar tot ce primeste , si daca citeste nu o face tocma' bine.


Oricum 3Nigma , thank's !  Winking
Memorat

We live in a very special time in the evolution of the universe: the time at which we can observationally verify that we live in a very special time in the evolution of the universe!" (John Timmer)
Blog
HostGator
Newbie
*
Mesaje: Multe

Reclamă cu aligatori
 

Ai auzit de aligatorul care ofera hosting?
 
   
Pagini: [1]
  Imprimă  
 
Schimbă forumul:  

Creat cu MySQL Creat cu PHP Ethical hacking and programming community Director web romanesc cu inscriere gratuita Validat cu XHTML 1.0! Validat cu CSS!
IPFind, FAQDB, LAMP.ro, Good Proxy, Aberez.EU, RoFreeSBIE, ShockingSoft.com, HostVision, Invatam.net, PC Troubleshooting, Curs valutar online
Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
Traducerea în limba română © 2006-2007 www.smf.ro