[ENet-discuss] Fwd: Re: What about a custom packet pattern?
Daniel Aquino
mr.danielaquino at gmail.com
Thu Apr 14 05:10:49 PDT 2011
I'm confused on how:
[ size_of_game_data ] [ game_data ] [ voice_data ]
relates to:
[ (1 byte)1 ] [ (1 byte) user_id ] [ (80 bytes)voicedata ]
[ (1 byte)10 ] [ (1 byte) user_id, (9 bytes) text_message ]
On Thu, Apr 14, 2011 at 7:56 AM, Sergio Martin <
smartin at freedomfactorystudios.com> wrote:
> Hi,
>
> Just to clarify, it's a hardware requirement of the platform I'm
> developing for to send physical UDP packets in this form.
>
> e.g. I need to send a physical UDP packet like this:
>
> [ (1 byte)1 ] [ (1 byte) user_id ] [ (80 bytes)voicedata ]
>
> or:
>
> [ (1 byte)10 ] [ (1 byte) user_id, (9 bytes) text_message ] [ (0
> bytes)voicedata ]
>
>
> El 14/04/2011 13:42, Daniel Aquino escribió:
>
>> Doesn't sound right to me. Your hard coding enet into only having the
>> ability to create packets with voice data shoved onto them. That's not
>> very flexible.
>>
>> You can put any data you want into the packet so nothing stops you from
>> making all your packets in the desired format.
>>
>> But the whole point of channels is to separate such data and treat them
>> differently.
>>
>> Normally for voice packets you would send them on their own channel
>> using unreliable + sequenced. This way late packets would be dropped
>> which is desired for voice.
>>
>> Also Enet is not going to send a physical udp packet until you flush the
>> host. So if you were to send a game packet and then send a voice packet
>> and call flush they would both end up in the same udp packet on the wire.
>>
>>
>>
>> On Thu, Apr 14, 2011 at 6:40 AM, Sergio Martin
>> <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>
>> http://lists.cubik.org/mailman/listinfo/enet-discuss
>>
>>
>> _______________________________________________
> ENet-discuss mailing list
> ENet-discuss at cubik.org
> http://lists.cubik.org/mailman/listinfo/enet-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cubik.org/pipermail/enet-discuss/attachments/20110414/6003e7fb/attachment.html>
More information about the ENet-discuss
mailing list