Hey there. On your while(true) on the client you must also call enet_host_service in order for the client to keep its connection alive.
2010/11/5 Вячеслав Блинников <[email protected]> > Hello! > > I wrote the base client accordingly the tutorial and the client which > read inputting through console characters and send it to the server. > Everything is fine but just first 30 seconds - then happen the > disconnection (message "Client information disconnected" shown). > What is wrong with my code? > > > > Server code: > > #include <cstdio> > #include "enet\enet.h" > int main(int argc, int** argv) > { > if (enet_initialize () != 0) > { > printf ("An error occurred while initializing ENet.\n"); > goto END; > } > ENetAddress address; > address.host = ENET_HOST_ANY; > address.port = 1234; > ENetHost* server = enet_host_create ( & address, 32, 2, 0, 0); > if (server == NULL) > { > printf("An error occurred while trying to create an ENet > client host.\n"); > goto END; > } > ENetEvent event; > WAIT_FOR_AN_EVENT: > enet_host_service(server, &event, 5); > switch (event.type) > { > case ENET_EVENT_TYPE_CONNECT: > printf ("A new client connected from %x:%u.\n", event.peer > -> > address.host, event.peer -> address.port); > event.peer -> data = "Client information"; > break; > > case ENET_EVENT_TYPE_RECEIVE: > printf ("A packet of length %u was received from %s on > channel %u. > Containings:\n %s", event.packet -> dataLength, event.peer -> data, > event.channelID, event.packet -> data); > enet_packet_destroy (event.packet); > break; > > case ENET_EVENT_TYPE_DISCONNECT: > printf ("%s disconected.\n", event.peer -> data); > event.peer -> data = NULL; > break; > > case ENET_EVENT_TYPE_NONE: > break; > } > goto WAIT_FOR_AN_EVENT; > > printf("host halted.\n"); > > END: > getchar(); > return 0; > } > > > > Client code: > > #include <cstdio> > #include "enet\enet.h" > #include <vector> > int main(int argc, int** argv) > { > //where reading console data will be stored: > std::vector<char> buffer; > > if (enet_initialize () != 0) > { > printf ("An error occurred while initializing ENet.\n"); > goto END; > } > ENetHost* client = enet_host_create ( NULL, 1, 2, 57600 / 8, > 14400 / 8); > if(client == 0l) > { > printf("An error occurred while trying to create an ENet > server host.\n"); > goto END; > } > ENetAddress address; > enet_address_set_host(&address, "localhost"); > address.port = 1234; > > ENetPeer* peer = enet_host_connect(client, &address, 2, 0); > if(peer == 0l) > { > printf("No available peers for initiating an ENet > connection.\n"); > goto END; > } > > ENetEvent event; > if (enet_host_service (client, & event, 5000) > 0 && event.type == > ENET_EVENT_TYPE_CONNECT) > { > puts ("Connection to localhost:1234 succeeded."); > } > else > { > enet_peer_reset (peer); > > puts ("Connection to localhost:1234 failed."); > goto END; > } > > printf("Input some data which will be sent to server...\n"); > > INPUT_DATA: > buffer.clear(); > while(true) > { > char character = getchar(); > buffer.push_back(character); > if(character == '\n') > { > break; > } > } > buffer.push_back('\0'); > > ENetPacket * packet = enet_packet_create(&buffer[0], buffer.size(), > ENET_PACKET_FLAG_RELIABLE); > enet_peer_send (peer, 0, packet); > enet_host_flush(client); > goto INPUT_DATA; > > END: > getchar(); > > return 0; > } > _______________________________________________ > 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
