<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    The same thing happens to me if the client does nothing (no events
    to send, ect) even when calling enet_host_service() on a regular
    basis. I just added an unreliable "ping packet" every once in a
    while which solved it.<br>
    <div class="moz-signature"><br>
      <hr style="height: 1px;">
      <p><span style="font-weight: bold;">Nicholas J Ingrassellino<br>
          <a style="text-decoration: none;"
            href="http://www.lifebloodnetworks.com/" target="_blank">LifebloodNetworks.com</a></span>
        || <a style="text-decoration: none;"
          href="mailto:nick@lifebloodnetworks.com">nick@lifebloodnetworks.com</a></p>
      <p style="font-size: 75%;">"<span style="font-style: italic;">The
          idea that I can be presented with a problem, set out to
          logically solve it with the tools at hand, and wind up with a
          program that could not be legally used because someone else
          followed the same logical steps some years ago and filed for a
          patent on it is horrifying.</span>"<br>
        - <span style="font-weight: bold;">John Carmack</span> on
        software patents</p>
    </div>
    <br>
    On 11/05/2010 10:10 AM, Nuno Silva wrote:
    <blockquote
      cite="mid:AANLkTikY6OeZUPbNU-wjf4dmBJNb6Khwfj6QQP=s=jDY@mail.gmail.com"
      type="cite">Hey there.<br>
      On your while(true) on the client you must also call
      enet_host_service in order for the client to keep its connection
      alive.<br>
      <br>
      <div class="gmail_quote">2010/11/5 Вячеслав Блинников <span
          dir="ltr"><<a moz-do-not-send="true"
            href="mailto:slavmfm@gmail.com">slavmfm@gmail.com</a>></span><br>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">Hello!<br>
          <br>
          I wrote the base client accordingly the tutorial and the
          client which<br>
          read inputting through console characters and send it to the
          server.<br>
          Everything is fine but just first 30 seconds - then happen the<br>
          disconnection (message "Client information disconnected"
          shown).<br>
          What is wrong with my code?<br>
          <br>
          <br>
          <br>
          Server code:<br>
          <br>
          #include <cstdio><br>
          #include "enet\enet.h"<br>
          int main(int argc, int** argv)<br>
          {<br>
                 if (enet_initialize () != 0)<br>
             {<br>
                 printf ("An error occurred while initializing
          ENet.\n");<br>
                 goto END;<br>
             }<br>
                 ENetAddress address;<br>
                 address.host = ENET_HOST_ANY;<br>
                 address.port = 1234;<br>
                 ENetHost* server = enet_host_create (   & address,
          32, 2, 0, 0);<br>
             if (server == NULL)<br>
             {<br>
                 printf("An error occurred while trying to create an
          ENet<br>
          client host.\n");<br>
                 goto END;<br>
             }<br>
                 ENetEvent event;<br>
          WAIT_FOR_AN_EVENT:<br>
                 enet_host_service(server, &event, 5);<br>
                 switch (event.type)<br>
                 {<br>
                 case ENET_EVENT_TYPE_CONNECT:<br>
                         printf ("A new client connected from %x:%u.\n",
          event.peer -><br>
          address.host, event.peer -> address.port);<br>
                         event.peer -> data = "Client information";<br>
                         break;<br>
          <br>
                 case ENET_EVENT_TYPE_RECEIVE:<br>
                         printf ("A packet of length %u was received
          from %s on channel %u.<br>
          Containings:\n  %s", event.packet -> dataLength, event.peer
          -> data,<br>
          event.channelID, event.packet -> data);<br>
                         enet_packet_destroy (event.packet);<br>
                         break;<br>
          <br>
                 case ENET_EVENT_TYPE_DISCONNECT:<br>
                         printf ("%s disconected.\n", event.peer ->
          data);<br>
                         event.peer -> data = NULL;<br>
                         break;<br>
          <br>
                 case ENET_EVENT_TYPE_NONE:<br>
                         break;<br>
                 }<br>
                 goto WAIT_FOR_AN_EVENT;<br>
          <br>
                 printf("host halted.\n");<br>
          <br>
          END:<br>
                 getchar();<br>
                 return 0;<br>
          }<br>
          <br>
          <br>
          <br>
          Client code:<br>
          <br>
          #include <cstdio><br>
          #include "enet\enet.h"<br>
          #include <vector><br>
          int main(int argc, int** argv)<br>
          {<br>
                 //where reading console data will be stored:<br>
                 std::vector<char> buffer;<br>
          <br>
                 if (enet_initialize () != 0)<br>
             {<br>
                 printf ("An error occurred while initializing
          ENet.\n");<br>
                 goto END;<br>
             }<br>
                 ENetHost* client        = enet_host_create ( NULL, 1,
          2, 57600 / 8, 14400 / 8);<br>
                 if(client == 0l)<br>
                 {<br>
                         printf("An error occurred while trying to
          create an ENet server host.\n");<br>
                         goto END;<br>
                 }<br>
                 ENetAddress address;<br>
                 enet_address_set_host(&address, "localhost");<br>
                 address.port    = 1234;<br>
          <br>
                 ENetPeer* peer  = enet_host_connect(client,
          &address, 2, 0);<br>
                 if(peer == 0l)<br>
                 {<br>
                         printf("No available peers for initiating an
          ENet connection.\n");<br>
                         goto END;<br>
                 }<br>
          <br>
                 ENetEvent event;<br>
                 if (enet_host_service (client, & event, 5000) >
          0 && event.type ==<br>
          ENET_EVENT_TYPE_CONNECT)<br>
                 {<br>
                         puts ("Connection to localhost:1234
          succeeded.");<br>
                 }<br>
                 else<br>
                 {<br>
                         enet_peer_reset (peer);<br>
          <br>
                         puts ("Connection to localhost:1234 failed.");<br>
                         goto END;<br>
                 }<br>
          <br>
                 printf("Input some data which will be sent to
          server...\n");<br>
          <br>
          INPUT_DATA:<br>
                 buffer.clear();<br>
                 while(true)<br>
                 {<br>
                         char character = getchar();<br>
                         buffer.push_back(character);<br>
                         if(character == '\n')<br>
                         {<br>
                                 break;<br>
                         }<br>
                 }<br>
                 buffer.push_back('\0');<br>
          <br>
                 ENetPacket * packet =
          enet_packet_create(&buffer[0], buffer.size(),<br>
          ENET_PACKET_FLAG_RELIABLE);<br>
                 enet_peer_send (peer, 0, packet);<br>
                 enet_host_flush(client);<br>
                 goto INPUT_DATA;<br>
          <br>
          END:<br>
                 getchar();<br>
          <br>
                 return 0;<br>
          }<br>
          _______________________________________________<br>
          ENet-discuss mailing list<br>
          <a moz-do-not-send="true" href="mailto:ENet-discuss@cubik.org">ENet-discuss@cubik.org</a><br>
          <a moz-do-not-send="true"
            href="http://lists.cubik.org/mailman/listinfo/enet-discuss"
            target="_blank">http://lists.cubik.org/mailman/listinfo/enet-discuss</a><br>
        </blockquote>
      </div>
      <br>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
ENet-discuss mailing list
<a class="moz-txt-link-abbreviated" href="mailto:ENet-discuss@cubik.org">ENet-discuss@cubik.org</a>
<a class="moz-txt-link-freetext" href="http://lists.cubik.org/mailman/listinfo/enet-discuss">http://lists.cubik.org/mailman/listinfo/enet-discuss</a>
</pre>
    </blockquote>
  </body>
</html>