Hi !
Featured games (85)
games approved by the League of Dukes
Games in Showcase (636)
Games in Android Showcase (178)
games submitted by our members
Games in WIP (686)
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 2791 times)
0 Members and 1 Guest are viewing this topic.
Offline roland
« Posted 2011-12-16 09: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 Devvie

Medals: 10
Exp: 9 years


« Reply #1 - Posted 2011-12-16 12: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

JGO Kernel

Medals: 202

« Reply #2 - Posted 2011-12-16 17: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 02: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 Bitwise Duke »

Medals: 165
Projects: 4
Exp: 14 years

Esoteric Software

« Reply #4 - Posted 2011-12-17 18: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 09: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 Knight

Medals: 33
Exp: 18 years

Computers can do that?

« Reply #6 - Posted 2011-12-18 10: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.

Dwinin (61 views)
2015-11-07 13:29:08

Rems19 (74 views)
2015-10-31 01:36:56

Rems19 (66 views)
2015-10-31 01:32:37

williamwoles (103 views)
2015-10-23 10:42:59

williamwoles (90 views)
2015-10-23 10:42:45

Jervac_ (103 views)
2015-10-18 23:29:12

DarkCart (131 views)
2015-10-16 00:58:11

KaiHH (113 views)
2015-10-11 14:10:14

KaiHH (152 views)
2015-10-11 13:26:18

BurntPizza (165 views)
2015-10-08 03:11:46
Rendering resources
by Roquen
2015-11-13 14:37:59

Rendering resources
by Roquen
2015-11-13 14:36:58

Math: Resources
by Roquen
2015-10-22 07:46:10

Networking Resources
by Roquen
2015-10-16 07:12:30

Rendering resources
by Roquen
2015-10-15 07:40:48

Math: Inequality properties
by Roquen
2015-10-01 13:30:46

Math: Inequality properties
by Roquen
2015-09-30 16:06:05

HotSpot Options
by Roquen
2015-08-29 11:33:11 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!