Advertisement
Guest User

Untitled

a guest
Aug 15th, 2012
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. trySend:
  2. int sent;
  3. {
  4. int skt = socket(AF_INET, SOCK_DGRAM, 0);
  5. sockaddr_in src_addr;
  6. memset(&src_addr, 0, sizeof src_addr);
  7. src_addr.sin_family = AF_INET;
  8. src_addr.sin_addr.s_addr = htonl(f.fSrcHost.toIPv4Address());
  9. src_addr.sin_port = 0;
  10. sockaddr_in dst_addr;
  11. memset(&dst_addr, 0, sizeof dst_addr);
  12. dst_addr.sin_family = AF_INET;
  13. dst_addr.sin_addr.s_addr = htonl(f.fHost.toIPv4Address());
  14. dst_addr.sin_port = htons(MDK_CMD_UDP_PORT);
  15. if (bind(skt, (sockaddr *)&src_addr, sizeof src_addr) == -1) DLOG_PF("bind: %1", errno);
  16. sent = sendto(skt, dg.data(), dg.size(), 0, (sockaddr *)&dst_addr, sizeof dst_addr);
  17. close(skt);
  18. ++pktCnt;
  19. pktSize += dg.size();
  20. }
  21. if ((sent != dg.size()))
  22. DLOG_PF("sendto error %1 %2 %3 [%4 %5]", sent, dg.size(), errno, pktCnt, pktSize);
  23. if (errno == ENOBUFS)
  24. {
  25. DLOG_PF("ENOBUFS sleep");
  26. sleep(1);
  27. goto trySend;
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement