Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
markaren committed May 16, 2024
1 parent d41634a commit ddb9f9f
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 2 deletions.
2 changes: 2 additions & 0 deletions include/UDPSocket.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ class UDPSocket{

bool sendTo(const std::string& address, uint16_t port, const std::string& data);

bool sendTo(const std::string& address, uint16_t port, const std::vector<unsigned char>& data);

int recvFrom(const std::string& address, uint16_t port, std::vector<unsigned char>& buffer);

void close();
Expand Down
21 changes: 19 additions & 2 deletions src/UDPSocket.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,19 @@ struct UDPSocket::Impl {
return false;
}

return sendto(sockfd, data.c_str(), data.size(), 0, (sockaddr*) &to, sizeof(to)) != SOCKET_ERROR;
return sendto(sockfd, data.c_str(), data.size(), 0, reinterpret_cast<sockaddr*>(&to), sizeof(to)) != SOCKET_ERROR;
}

bool sendTo(const std::string& address, uint16_t port, const std::vector<unsigned char>& data) const {
sockaddr_in to{};
to.sin_family = AF_INET;
to.sin_port = htons(port);
if (!inet_pton(AF_INET, address.c_str(), &to.sin_addr)) {

return false;
}

return sendto(sockfd, reinterpret_cast<const char*>(data.data()), data.size(), 0, reinterpret_cast<sockaddr*>(&to), sizeof(to)) != SOCKET_ERROR;
}

int recvFrom(const std::string& address, uint16_t port, std::vector<unsigned char>& buffer) const {
Expand All @@ -46,7 +58,7 @@ struct UDPSocket::Impl {
}
socklen_t fromLength = sizeof(from);

int receive = recvfrom(sockfd, reinterpret_cast<char*>(buffer.data()), buffer.size(), 0, (sockaddr*) &from, &fromLength);
int receive = recvfrom(sockfd, reinterpret_cast<char*>(buffer.data()), buffer.size(), 0, reinterpret_cast<sockaddr*>(&from), &fromLength);
if (receive == SOCKET_ERROR) {
return -1;
}
Expand Down Expand Up @@ -79,6 +91,11 @@ bool UDPSocket::sendTo(const std::string& address, uint16_t port, const std::str
return pimpl_->sendTo(address, port, data);
}

bool UDPSocket::sendTo(const std::string& address, uint16_t port, const std::vector<unsigned char>& data) {

return pimpl_->sendTo(address, port, data);
}

int UDPSocket::recvFrom(const std::string& address, uint16_t port, std::vector<unsigned char>& buffer) {

return pimpl_->recvFrom(address, port, buffer);
Expand Down

0 comments on commit ddb9f9f

Please sign in to comment.