[ENet-discuss] Problem partailly solved
Alexaroth
alex_prislopeanu at yahoo.com
Mon Feb 28 09:01:32 PST 2011
Indeed it does not send any data... Now I have another issue:
How can I make a function like
char* updateHost()
{string* b;
while (enet_host_service (server, & event, 100) > 0)
{ switch (event.type)
{ case ENET_EVENT_TYPE_RECEIVE:
b=reinterpret_cast<char*>(event.packet->data);
enet_packet_destroy (event.packet);
return b;
break;
}}}
I need to call from the main program the function like this:
if (updateHost()=="connected")
{cout>> Client connected !}
I practically want to return whatever packet a client/server sends me...
________________________________
From: Ruud van Gaal <ruud at racer.nl>
To: Discussion of the ENet library <enet-discuss at cubik.org>
Sent: Monday, February 28, 2011 4:23 PM
Subject: Re: [ENet-discuss] Problem partailly solved
No packet is being sent indeed.
The peer->data is a local pointer that only 'lives' at the computer that defines it. Nothing is send; you need packets for that. It's just to associate computer-local data with the peer (a peer is a computer, not a packet).
Ruud
On Mon, Feb 28, 2011 at 2:10 PM, Nuno Silva <little.coding.fox at gmail.com> wrote:
>There's no packet size for peer data (at least from what the docs tell me about the _ENetPeer struct), since he's probably not sending a packet. He's just setting the peer's data to the name, not a packet's data.
>
>
>On Mon, Feb 28, 2011 at 12:55 PM, Jay Sprenkle <jsprenkle at gmail.com> wrote:
>
>>>Some quick comments. See below:
>>
>>
>>On Mon, Feb 28, 2011 at 5:32 AM, Alexaroth <alex_prislopeanu at yahoo.com> wrote:
>>
>>Well I kinda understand how things work... the thing is this
>>>
>>>
>>>I have some client code:
>>>>>>
>>>
>>>
>>>peer = enet_host_connect (client, & address, 2, 0);
>>>
>>>name =
>>> player.getname(); //this returns a string from inside a class member
>>>peer->data = (void*)name.c_str(); I am making the peer data the name of the player
>>>>>>
>>>
>>>
>>
>>I assume you set the packet size to the size of the name string ?
>>
>>
>>
>>>>>
>>>
>>>>>>
>>>
>>>On the server end:
>>>
>>>>>>
>>>
>>>
>>>ENetPeer *peer2[2];
>>>>>>
>>>
>>>
>>>while (enet_host_service (server, & event, 100) > 0)
>>>>>>
>>>
>>> { switch (event.type)
>>> {
>>> case ENET_EVENT_TYPE_CONNECT:
>>>
>>> peer2[1] =
>>> event.peer;
>>> textprintf_ex(screen, font, 10, 200, white,-1,"%s is client !",peer2[1]->data); this is allegro, it just outputs the %s is client on screen
>>> name=(char*)peer->data;
>>>
>>>
>>
>>You're using a pointer here instead of copying the data from the enet packet. Make sure you aren't using deleted data or just losing memory by not destroying packets.
>>
>>Shouldn't this:
>>name=(char*)peer->data;
>>
>>be this:
>>name=(char*)peer2[1]->data;
>>
>>
>>
>>_______________________________________________
>>>>ENet-discuss mailing list
>>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
>
>
_______________________________________________
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/20110228/c99469ab/attachment-0001.html>
More information about the ENet-discuss
mailing list