[ENet-discuss] What about a custom packet pattern?

Sergio Martin smartin at freedomfactorystudios.com
Thu Apr 14 07:48:58 PDT 2011


It's not a problem of serialization, I need to customize the way packet 
data is sent by enet. It's a requirement of this custom UDP protocol.

Of course the [game data] part of the packet will use serialization 
(also encryption, compression, etc).

I hope this will clarify the matter.


El 14/04/2011 16:19, Jay Sprenkle escribió:
> I did the same thing (but for the pc).
> I answered a question about how I did the serialization here
> <http://stackoverflow.com/questions/5623791/c-network-serialization/5624996#5624996>
> <http://stackoverflow.com/questions/5623791/c-network-serialization/5624996#5624996>I
> use Separation of concerns
> <http://en.wikipedia.org/wiki/Separation_of_concerns> for my designs so
> I never looked a serialization as being part of enet
>
> On Thu, Apr 14, 2011 at 6:35 AM, Sergio Martin
> <smartin at freedomfactorystudios.com
> <mailto:smartin at freedomfactorystudios.com>> wrote:
>
>      > What about all the other people that use enet?
>
>     These change are only intended for my project.
>     It's not like I'm going to commit to the enet CVS :D
>
>      > Why don't you implement code to create packets and send them
>     using enet.
>
>     I have already a message class for that. But I need to send UDP
>     packets in this very specific form over a custom network. Just to
>     give you a clue, I'm not developing for the PC ;-)
>
>
>     El 14/04/2011 13:27, Jay Sprenkle escribió:
>
>         Sergio,
>         The pattern you've chosen sounds fine.
>         I don't think changing enet to meet your requirements is a good
>         idea though.
>         What about all the other people that use enet?
>         Why don't you implement code to create packets and send them
>         using enet.
>         That's how it's intended to be used.
>         It works just fine for me.
>
>
>
>
>
>         On Thu, Apr 14, 2011 at 5:40 AM, Sergio Martin
>         <smartin at freedomfactorystudios.com
>         <mailto:smartin at freedomfactorystudios.com>
>         <mailto:smartin at freedomfactorystudios.com
>         <mailto:smartin at freedomfactorystudios.com>>> wrote:
>
>             Hi,
>
>             In order to meet our client custom network requirement, I
>         need to
>             send each UDP packet data as following:
>
>             [ size_of_game_data ] [ game_data ] [ voice_data ]
>
>
>             How difficult would be to modify ENet behaviour to meet that
>         pattern?
>             I'm not sure how to deal with ENet's packet fragmentation.
>
>             I'm thinking of adding to ENetPacket struct two new variables:
>             enet_uint8 * voiceData;             /**< allocated voice
>         data for
>             packet */
>             size_t           voiceDataLength;  /**< length of voice data */
>
>             Change: enet_packet_create (const void * data, size_t
>         dataLength,
>             enet_uint32 flags)
>             To this: enet_packet_create(const void * data, size_t
>         dataLength,
>             const void * voiceData, size_t voiceDataLength, enet_uint32
>         flags)
>
>             And then modify the rest of ENet to support it.
>
>
>             Is this the correct approach?
>
>
>             Best Regards,
>             Sergio Martin.
>
>             _______________________________________________
>             ENet-discuss mailing list
>         ENet-discuss at cubik.org <mailto:ENet-discuss at cubik.org>
>         <mailto:ENet-discuss at cubik.org <mailto:ENet-discuss at cubik.org>>
>         http://lists.cubik.org/mailman/listinfo/enet-discuss
>
>
>
>
>         --
>         ---
>         "The great thing about Object Oriented code is that it can make
>         small,
>         simple problems look like large, complex ones."
>
>
>
>
> --
> ---
> "The great thing about Object Oriented code is that it can make small,
> simple problems look like large, complex ones."


More information about the ENet-discuss mailing list