c++ - Sockets- Java not receiving the bytes in proper encoding -


this question has answer here:

i using sockets , implementing java server , c++ client. client sending server class. java server receives array of bytes after not converting class members right. have looked lot guess don't know for. here parts of code, complete code quite big

client c++

intval temp;  set(temp,values);   int tempp; tempp=send(s_id,&temp,sizeof(temp),0); if(tempp==-1) {     printf("sending error \n"); } 

"intval class" has 7 8 float values , no member function.

server java

public static void main(string[] args) throws ioexception {         // todo code application logic here          values values=new values();          gui display=new gui();          display.setvisible(true);         serversocket sock=new serversocket(9090);         try{             while(true){                 system.out.println("waiting");                 socket socket=sock.accept();                      system.out.println("connected");                   inputstream ins=socket.getinputstream();                     inputstreamreader insr= new inputstreamreader(ins);                     bufferedreader br=new bufferedreader(insr);                      byte[]array=br.readline().getbytes("utf-8");                    // values.setvalues(array);                     //display.setvalues(values);                      values.twidth=array[0];                     values.waterlevel=array[4];                     values.camheight=array[8];                     values.camviewangley=array[12];                     values.camviewanglex=array[16];                     values.distfromcambank=array[20];                     values.disttwopoints=array[24];                     values.avgvelocity=array[28];                     values.crosssecarea=array[32];                     values.flow=array[36];                     values.camtiltangle=array[40];                     values.abovewater=array[44];                     system.out.println(values.twidth);                     system.out.println(values.waterlevel);                     socket.close();                 }          }         finally{             sock.close();         }       } } 

here class values equivalent intval class in c++ client. can see checking first 2 values, display garbage values. please point me in right direction wrong here.

you encoding , decoding bytes it's blame this, not java. use inputstream, not reader, , process bytes directly.


Comments

Popular posts from this blog

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

html - How to style widget with post count different than without post count -

url rewriting - How to redirect a http POST with urlrewritefilter -