aj3423

Untitled

Jan 22nd, 2016
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. #include <string>
  2. #include <iostream>
  3. #include <enet/enet.h>
  4. using namespace std;
  5.  
  6. #include "scope_guard.h"
  7. void main()
  8. {
  9. if(enet_initialize()) {
  10. cout << "fail init" << endl;
  11. return;
  12. }
  13.  
  14.  
  15. int success = 0;
  16. int fail = 0;
  17.  
  18. while(1) {
  19. ENetHost* client = enet_host_create(NULL,
  20. 1,
  21. 2,
  22. 0,
  23. 0);
  24. if(client == NULL) {
  25. cout << "fail create client" << endl;
  26. fail++;
  27. continue;
  28. }
  29. scope_guard g1([&]{ enet_host_destroy(client); });
  30.  
  31. ENetAddress svraddr;
  32. enet_address_set_host(&svraddr, "127.0.0.1");
  33. svraddr.port = 9000;
  34.  
  35. ENetPeer* server = enet_host_connect(client, &svraddr, 2, 0);
  36.  
  37. if(server == NULL) {
  38. fail++;
  39. continue;
  40. }
  41.  
  42. ENetEvent event;
  43. if(enet_host_service (client, &event, 5000) > 0 &&
  44. event.type == ENET_EVENT_TYPE_CONNECT) {
  45. } else {
  46. enet_peer_reset (server);
  47. fail++;
  48. continue;
  49. }
  50.  
  51. string data(2 * 1024, 'a'); // not ok
  52. ENetPacket* packet1 = enet_packet_create(data.c_str(), data.length(), ENET_PACKET_FLAG_RELIABLE);
  53. if(!packet1) {
  54. fail++;
  55. continue;
  56. }
  57. if(enet_peer_send(server, 0, packet1) < 0) {
  58. fail++;
  59. continue;
  60. }
  61.  
  62. enet_host_flush (client);
  63.  
  64. bool disconnected = false;
  65. while(enet_host_service (client, &event, 5000) > 0) {
  66. if(event.type == ENET_EVENT_TYPE_RECEIVE) {
  67. if(event.packet->dataLength == 2*1024) {
  68. success++;
  69. } else {
  70. fail++;
  71. }
  72. enet_packet_destroy (event.packet);
  73. break;
  74. } else if(event.type == ENET_EVENT_TYPE_DISCONNECT) {
  75. disconnected = true;
  76. break;
  77. }
  78. }
  79. if(!disconnected) {
  80. enet_peer_disconnect(server, 0);
  81. while(enet_host_service (client, &event, 5000) > 0) {
  82. if(event.type == ENET_EVENT_TYPE_DISCONNECT) {
  83. break;
  84. }
  85. }
  86. }
  87.  
  88. enet_peer_reset(server);
  89. cout << "success: " << success << ", fail: " << fail << endl;
  90. }
  91.  
  92.  
  93. enet_deinitialize();
  94. }
Add Comment
Please, Sign In to add comment