udpsocket.hpp 721 B

1234567891011121314151617181920212223242526272829
  1. #include <arpa/inet.h>
  2. #include <iostream>
  3. #include <stdexcept>
  4. #include <netdb.h>
  5. #include <stdlib.h>
  6. #include <cstring>
  7. #include <sys/socket.h>
  8. #include <unistd.h>
  9. #include <netinet/in.h>
  10. #include <sys/types.h>
  11. #include <vector>
  12. class udpsocket {
  13. struct sockaddr_in addr;
  14. int s, slen = sizeof(addr);
  15. int m_port;
  16. public:
  17. udpsocket(int port);
  18. udpsocket(const udpsocket&) = delete;
  19. udpsocket& operator=(const udpsocket&) = delete;
  20. udpsocket(udpsocket&&);
  21. udpsocket& operator=(udpsocket&&);
  22. void write(const std::string&,const std::string& dest, int port)const;
  23. void write(const std::vector<char>&,const std::string& dest, int port)const;
  24. std::vector<char> receive()const;
  25. void close();
  26. int port()const;
  27. };