GeeCON Prague 2014*
The moose likes Sockets and Internet Protocols and the fly likes Java & C++ pro question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Java » Sockets and Internet Protocols
Bookmark "Java & C++ pro question" Watch "Java & C++ pro question" New topic
Author

Java & C++ pro question

Gregory Garrison
Ranch Hand

Joined: Oct 05, 2001
Posts: 107
Can anyone tell me how to equate a C/C++ struct formed message in java, eg,
C/C++ (excuse my C/C++ lingo)
struct {
char parm1,
char parm2,
int parm3 }

I need to send the equivalent message in Java over a socket connection.
Thanks.
Carl Trusiak
Sheriff

Joined: Jun 13, 2000
Posts: 3340
You need to determine the data size that is being used for char and int in the C/C++ version you are using. Then it's simply a matter of casting your java types to the right size and placing them into a byte array to be sent over the socket.
From C the compiler I used in the past, char had a size of 8 bits and int had a size of 16 bits. This will give you an array of 4 bytes so you can use something like this to send a, b, 256.
char a = 'a';
char b = 'b';
int c = 256;
byte b[] = new byte[4];
b[0] = (byte)a;
b[1] = (byte)b;
b[2] = (byte)(c >> 8);
b[3] = (byte)c;
Send the byte array b and your there.
Gregory Garrison
Ranch Hand

Joined: Oct 05, 2001
Posts: 107
Carl - thanks so much!
 
GeeCON Prague 2014
 
subject: Java & C++ pro question