datagram - Java DatagramPacket, how do I separate it? -
so i've got datagrampacket gets sent client server. i'd know how can separate data multiple values.
i.e, lets want send 2 variables, x , y, , want receive them 2 variables on server-side. how this?
int x = 5; int y = 10; //send data server using pipe | delimiter byte[] data = integer.tostring(x) + "|" + integer.tostring(y).getbytes(); datagrampacket packet = new datagrampacket(data, data.length, host, port); ... //receive data client packet = new datagrampacket(new byte[packetsize], packetsize); //receive packet (blocking) socket.receive(packet); int x = packetseparate(packet, "an integer"); int y = packetseparate(packet, "an integer");
in other words, on server side after i've sent string byte array client, how able say: "integer x first integer byte array known as: packet.getdata()".
int x = packet.getdata().getaninteger(); int y = packet.getdata().getaninteger();
also, efficient say, networking game, send string bytes? or better convert each individual item own bytes , append byte array?
an integer 4 bytes long, read 4 bytes first integer, read next 4 next integer. in way dont need use strings send integers. google on how convert byte
integer
.
alternatively should use networking library netty has bytebuf
buffer class provides methods readint
, readlong
etc. , while @ it, there game servers written in netty might out.
Comments
Post a Comment