Example #1
0
AbstractSocket::Status UdpSocket::sendInt32(const int32& i, Host& h)
{
    struct sockaddr_in peer;
	int32 toSend = htonl(i);
    if (m_socketfd == -1)
        if ((m_socketfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
            return getStatus();

    peer = h.getHost();

    if (sendto(m_socketfd, &toSend, sizeof(int32), 0, reinterpret_cast<sockaddr*>(&peer), sizeof(peer)) == -1)
        return getStatus();

    return AbstractSocket::Done;
}
Example #2
0
AbstractSocket::Status UdpSocket::sendCharArray(const char* str, const size_t& s, Host& h)
{
    struct sockaddr_in peer;

    if (m_socketfd == -1)
        if ((m_socketfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
            return getStatus();

    peer = h.getHost();

    if (sendto(m_socketfd, str, s, 0, reinterpret_cast<sockaddr*>(&peer), sizeof(peer)) == -1)
        return getStatus();

    return AbstractSocket::Done;
}
Example #3
0
AbstractSocket::Status UdpSocket::sendString(const string& str, Host& h)
{
    struct sockaddr_in peer;
    const char* data = str.c_str();

    if (m_socketfd == -1)
        if ((m_socketfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
            return getStatus();

    peer = h.getHost();

    if (sendto(m_socketfd, data, str.length(), 0, reinterpret_cast<sockaddr*>(&peer), sizeof(peer)) == -1)
        return getStatus();

    return AbstractSocket::Done;
}
Example #4
0
AbstractSocket::Status UdpSocket::sendFrame(Frame& f, Host& h)
{
    struct sockaddr_in peer;

    if (m_socketfd == -1)
        if ((m_socketfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1)
            return getStatus();
    peer = h.getHost();
	uint32 size = f.getSize();
	if(size  > MaxDatagramSize)
		return UdpDatagramTooBig;
	int r =  sendto(m_socketfd, f.getData(), size, 0, reinterpret_cast<sockaddr*>(&peer), sizeof(peer));
	if(r<0)
		return getStatus();
	return Done;
}