Example #1
0
AbstractSocket::Status UdpSocket::receiveCharArray(char** str, Host& peer)
{
    *str = new char[MaxDatagramSize];
    struct sockaddr_in from;
    int dataRead;
    int len = sizeof(from);

    if ((dataRead = recvfrom(m_socketfd, *str, MaxDatagramSize, 0, reinterpret_cast<sockaddr*>(&from), reinterpret_cast<socklen_t*>(&len))) == -1)
        return getStatus();

    peer.setHost(from);
    return Done;
}
Example #2
0
AbstractSocket::Status UdpSocket::receiveString(string& str, Host& peer)
{
    char* buffer = new char[MaxDatagramSize];
    struct sockaddr_in from;
    int dataRead;
    int len = sizeof(from);

    if ((dataRead = recvfrom(m_socketfd, buffer, MaxDatagramSize, 0, reinterpret_cast<sockaddr*>(&from), reinterpret_cast<socklen_t*>(&len))) == -1)
        return getStatus();

    peer.setHost(from);
    str.assign(buffer, dataRead);
    return Done;
}
Example #3
0
AbstractSocket::Status UdpSocket::receiveInt32(int32& i, Host& peer)
{
    int32 buffer;
    struct sockaddr_in from;
    int dataRead;
    int len = sizeof(from);

    if ((dataRead = recvfrom(m_socketfd, &buffer, sizeof(int32), 0, reinterpret_cast<sockaddr*>(&from), reinterpret_cast<socklen_t*>(&len))) == -1)
        return getStatus();

    peer.setHost(from);
    i = ntohl(buffer);
    return Done;
}
Example #4
0
AbstractSocket::Status UdpSocket::receiveFrame(Frame &f, Host& peer)
{	
    uint32 size;
    struct sockaddr_in from;
    uint32 dataRead;
    int len = sizeof(from);
	char *buffer;

    buffer = new char[MaxDatagramSize];

	if ((dataRead = recvfrom(m_socketfd, buffer, MaxDatagramSize, 0, reinterpret_cast<sockaddr*>(&from), reinterpret_cast<socklen_t*>(&len))) == -1)
        return getStatus();
	
	f.setData(buffer, dataRead);

    peer.setHost(from);
	return Done;
}