Silly me... I am tired, just found out the solution
std::string 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); //I transfer packet
data in string b
textprintf_ex(screen, font, 30, 300, white,-1,"Un packet pe care scrie %s
",b.c_str()); // I show the data on screen
enet_packet_destroy (event.packet); // destroy packet
return std::string(b); //return the string so I can work
with it
break;
}
}
________________________________
From: Alexaroth <[email protected]>
To: Discussion of the ENet library <[email protected]>
Sent: Monday, February 28, 2011 7:01 PM
Subject: Re: [ENet-discuss] Problem partailly solved
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 <[email protected]>
To: Discussion of the ENet library <[email protected]>
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 <[email protected]> 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 <[email protected]> wrote:
>
>>>Some quick comments. See below:
>>
>>
>>On Mon, Feb 28, 2011 at 5:32 AM, Alexaroth <[email protected]> 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
>>[email protected]
>>>>http://lists.cubik.org/mailman/listinfo/enet-discuss
>>
>>
>
>_______________________________________________
>>ENet-discuss mailing list
>[email protected]
>http://lists.cubik.org/mailman/listinfo/enet-discuss
>
>
_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss
_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss
_______________________________________________
ENet-discuss mailing list
[email protected]
http://lists.cubik.org/mailman/listinfo/enet-discuss