sent only to one client

This commit is contained in:
ackimixs
2024-04-11 16:17:12 +02:00
parent 19126c69cd
commit 54a9b5b8a9
2 changed files with 17 additions and 1 deletions

View File

@@ -163,7 +163,7 @@ void TCPServer::handleMessage(const std::string& message, int clientSocket)
}
if (tokens[2] == "get pos") {
std::string toSend = "strat;all;set pos;" + std::to_string(this->robotPose.pos.x) + "," + std::to_string(this->robotPose.pos.y) + "," + std::to_string(this->robotPose.theta * 100) + "\n";
this->broadcastMessage(toSend);
this->sendToClient(toSend, clientSocket);
}
if (tokens[2] == "spawn") {
// TODO change that to handle spawn point
@@ -401,3 +401,16 @@ void TCPServer::askArduinoPos() {
usleep(500'000);
}
}
void TCPServer::sendToClient(const char *message, int clientSocket) {
for (int client : clientSockets) {
if (client == clientSocket) {
send(client, message, strlen(message), 0);
break;
}
}
}
void TCPServer::sendToClient(std::string &message, int clientSocket) {
this->sendToClient(message.c_str(), clientSocket);
}

View File

@@ -70,6 +70,9 @@ public:
void broadcastMessage(const char* message, int senderSocket = -1); // Modified method signature
void broadcastMessage(std::string &message, int senderSocket = -1); // Modified method signature
void sendToClient(const char* message, int clientSocket); // New method to send message to a specific client
void sendToClient(std::string &message, int clientSocket); // New method to send message to a specific client
void handleMessage(const std::string& message, int clientSocket = -1);
void clientDisconnected(int clientSocket); // New method to handle client disconnection