45 lines
1.5 KiB
C++
45 lines
1.5 KiB
C++
#pragma once
|
|
#if defined(__unix__) || defined(__APPLE__)
|
|
|
|
#include "Participants/ParticipantUDP.h"
|
|
|
|
namespace RoboidControl {
|
|
|
|
class ParticipantUDP : public ParticipantUDPGeneric {
|
|
public:
|
|
/// @brief Create a participant without connecting to a site
|
|
/// @param port The port on which the participant communicates
|
|
/// These participant typically broadcast Participant messages to let site
|
|
/// servers on the local network know their presence. Alternatively they can
|
|
/// broadcast information which can be used directly by other participants.
|
|
ParticipantUDP(int port = 7681);
|
|
/// @brief Create a participant which will try to connect to a site.
|
|
/// @param ipAddress The IP address of the site
|
|
/// @param port The port used by the site
|
|
/// @param localPort The port used by the local participant
|
|
ParticipantUDP(const char* ipAddress, int port = 7681, int localPort = 7681);
|
|
|
|
void SetupUDP(int localPort,
|
|
const char* remoteIpAddress,
|
|
int remotePort) override;
|
|
void ReceiveUDP() override;
|
|
|
|
//void Setup(int localPort, const char* remoteIpAddress, int remotePort);
|
|
void SetupTCP(const char* remoteIpAddress, int remotePort);
|
|
|
|
// void Receive();
|
|
int ReceiveTCP();
|
|
bool SendTo(RemoteParticipantUDP* remoteParticipant, int bufferSize);
|
|
bool Publish(IMessage* msg) override;
|
|
|
|
protected:
|
|
#if defined(__unix__) || defined(__APPLE__)
|
|
sockaddr_in remote_addr;
|
|
sockaddr_in server_addr;
|
|
sockaddr_in broadcast_addr;
|
|
#endif
|
|
};
|
|
|
|
} // namespace RoboidControl
|
|
#endif
|