Featured games (91)
games approved by the League of Dukes
Games in Showcase (579)
games submitted by our members
Games in WIP (500)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Splitting packets  (Read 2061 times)
0 Members and 1 Guest are viewing this topic.
Offline roland
« Posted 2011-12-16 10:48:22 »

Is there a UDP library that does packet splitting?
for example, if I have 10kb of data and want it split into 1.4kb packets, how can I do this? and how do I reconstruct them?

Edit: I am looking for something like ENet but in java
Offline Stranger

Senior Member

Medals: 6

« Reply #1 - Posted 2011-12-16 13:40:20 »

There was jenet project that is java port of enet. But looks like it's abandoned since 2005 and now disapppeared at all from
However i found one link.

Offline sproingie
« Reply #2 - Posted 2011-12-16 18:38:34 »

What sort of gain do you perceive you'll get from splitting an already small packet into even smaller ones?
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline roland
« Reply #3 - Posted 2011-12-17 03:43:32 »

There was jenet project that is java port of enet. But looks like it's abandoned since 2005 and now disapppeared at all from
However i found one link.
Thanks. Can I download the code with SVN? I can't find the url to use.

What sort of gain do you perceive you'll get from splitting an already small packet into even smaller ones?
Not sure, I am very new to networking, especially UDP. But I am trying to follow the Quake 3 Network model, which uses a maximum packet size of 1400 bytes (I think it's slightly more reliable?)
Offline Nate

JGO Kernel

Medals: 129
Projects: 3
Exp: 14 years

Esoteric Software

« Reply #4 - Posted 2011-12-17 19:17:35 »

Kryo can do delta compression. Don't think anyone has used it for a game though. The heart of it is this class:
Basically you use it like this:
delta = new Delta(2048, 8);
delta.compress(remoteData, latestData, deltaData);
delta.decompress(localData, deltaData, newLocalData);

You can grab the Delta class and use it like above outside of Kryo. It uses ByteBuffers though. You could just use ByteBuffer.wrap(byte[]) or modify it to use byte[] directly.

If you split UDP packets and the split packets are not useful unless both are received, you increase the damage done by pack loss, since if any of the split packets are not received it is as if none were received. For each split packet you'll need to encode the order in the sequence of split packets it is, and whether it is the last packet in the sequence.

IMO it would be better to get something working using TCP first, or at least don't worry about packet splitting until you have something working in UDP.

Offline roland
« Reply #5 - Posted 2011-12-18 10:32:35 »

Thanks Nate Smiley I don't want to use TCP because I want the networking to be as fast as possible. I will take your advice about making UDP work without splitting packets first (And maybe that might be fine) I don't think I want to use Kryonet at this stage but I may change my mind.
Thanks again,
Offline delt0r

JGO Coder

Medals: 22

Computers can do that?

« Reply #6 - Posted 2011-12-18 11:52:20 »

TCP is *not* slower than UPD with reliable and ordered packet delivery. It is UDP with reliable ordered packet delivery.

Don't forget if you want to do this yourself with UDP you need to also have flow control if you want to work on the real internet and not just on a lan. In fact you have to implement the whole TCP protocol/stack.

In some cases TCP can even be faster than UDP, for example on ADSL with DSLAMs optimized for TCP which most ISP do.

This idea of UDP is faster is based mostly on myth. 

I have no special talents. I am only passionately curious.--Albert Einstein
Pages: [1]
  ignore  |  Print  
You cannot reply to this message, because it is very, very old.


Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

xsi3rr4x (37 views)
2014-04-15 18:08:23

BurntPizza (33 views)
2014-04-15 03:46:01

UprightPath (48 views)
2014-04-14 17:39:50

UprightPath (31 views)
2014-04-14 17:35:47

Porlus (48 views)
2014-04-14 15:48:38

tom_mai78101 (69 views)
2014-04-10 04:04:31

BurntPizza (129 views)
2014-04-08 23:06:04

tom_mai78101 (229 views)
2014-04-05 13:34:39

trollwarrior1 (193 views)
2014-04-04 12:06:45

CJLetsGame (200 views)
2014-04-01 02:16:10
List of Learning Resources
by SHC
2014-04-18 03:17:39

List of Learning Resources
by Longarmx
2014-04-08 03:14:44

Good Examples
by matheus23
2014-04-05 13:51:37

Good Examples
by Grunnt
2014-04-03 15:48:46

Good Examples
by Grunnt
2014-04-03 15:48:37

Good Examples
by matheus23
2014-04-01 18:40:51

Good Examples
by matheus23
2014-04-01 18:40:34

Anonymous/Local/Inner class gotchas
by Roquen
2014-03-11 15:22:30 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!