12345678910111213141516171819202122232425262728293031323334353637 |
- #include <arpa/inet.h>
- #include <iostream>
- #include <stdexcept>
- #include <netdb.h>
- #include <string>
- #include <cstring>
- #include <cstdint>
- #include <sys/socket.h>
- #include <unistd.h>
- #include <netinet/in.h>
- #include <sys/types.h>
- #include <vector>
- struct packet{
- struct sockaddr_in addr;
- int m_port;
- std::uint64_t checksum[4];
- std::string content;
- packet(const std::string& content, const std::string& dest, int port);
- void setContent(const std::string&);
- };
- class udpsocket {
- struct sockaddr_in addr;
- int s, slen = sizeof(addr);
- int m_port;
- public:
- udpsocket(int port);
- udpsocket(const udpsocket&) = delete;
- udpsocket& operator=(const udpsocket&) = delete;
- udpsocket(udpsocket&&);
- udpsocket& operator=(udpsocket&&);
- void write(const std::string&,const std::string& dest, int port)const;
- void write(const std::vector<char>&,const std::string& dest, int port)const;
- std::vector<char> receive()const;
- void close();
- int port()const;
- };
|