Java-Gaming.org    
Featured games (81)
games approved by the League of Dukes
Games in Showcase (487)
Games in Android Showcase (110)
games submitted by our members
Games in WIP (552)
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 2197 times)
0 Members and 1 Guest are viewing this topic.
Offline roland
« Posted 2011-12-16 09:48:22 »

Hi,
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?
Thanks,
roland

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

Senior Member


Medals: 6



« 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 java.net.
However i found one link.

Anton
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 java.net.
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: 145
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:
https://code.google.com/p/kryo/source/browse/trunk/src/com/esotericsoftware/kryo/compress/Delta.java
Basically you use it like this:
1  
2  
3  
4  
5  
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,
roland
Offline delt0r

JGO Knight


Medals: 27
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.

 

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

The first screenshot will be displayed as a thumbnail.

CopyableCougar4 (23 views)
2014-08-22 19:31:30

atombrot (34 views)
2014-08-19 09:29:53

Tekkerue (30 views)
2014-08-16 06:45:27

Tekkerue (28 views)
2014-08-16 06:22:17

Tekkerue (18 views)
2014-08-16 06:20:21

Tekkerue (27 views)
2014-08-16 06:12:11

Rayexar (65 views)
2014-08-11 02:49:23

BurntPizza (41 views)
2014-08-09 21:09:32

BurntPizza (31 views)
2014-08-08 02:01:56

Norakomi (41 views)
2014-08-06 19:49:38
List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06

List of Learning Resources
by SilverTiger
2014-07-31 11:54:12

HotSpot Options
by dleskov
2014-07-08 01:59:08
java-gaming.org 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‑gaming.org
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!