there's been a lot of fixes on the network addon in the master branch in github so it might have been fixed since the release but this is working for me now:
int port = ofRandom(15000, 65535);
ofxUDPManager server;
server.Create();
server.SetNonBlocking(false);
server.Bind(port);
server.Connect("127.0.0.1", port+1);
std::string messageSent="message";
std::vector<char> bufferReceive(messageSent.size(),0);
std::string messageReceived;
ofxUDPManager client;
client.Create();
client.SetNonBlocking(false);
client.Bind(port+1);
client.Connect("127.0.0.1", port);
client.Send(messageSent.c_str(), messageSent.size());
auto ret = server.Receive(bufferReceive.data(), messageSent.size());
if(ret>=0){
messageReceived.assign(bufferReceive.begin(), bufferReceive.end());
if(messageSent != messageReceived){
ofLogError() << "message different";
}
}else{
ofLogError() << "error while receiving"
}
server.Send(messageSent.c_str(), messageSent.size());
bufferReceive.assign(messageSent.size(),0);
ret = client.Receive(bufferReceive.data(), messageSent.size());
if(ret>=0){
messageReceived.assign(bufferReceive.begin(), bufferReceive.end());
if(messageSent != messageReceived){
ofLogError() << "message different";
}
}else{
ofLogError() << "error while receiving"
}
client.Send(messageSent.c_str(), messageSent.size());
auto ret = server.Receive(bufferReceive.data(), messageSent.size());
if(ret>=0){
messageReceived.assign(bufferReceive.begin(), bufferReceive.end());
if(messageSent != messageReceived){
ofLogError() << "message different";
}
}else{
ofLogError() << "error while receiving"
}
server.Send(messageSent.c_str(), messageSent.size());
bufferReceive.assign(messageSent.size(),0);
ret = client.Receive(bufferReceive.data(), messageSent.size());
if(ret>=0){
messageReceived.assign(bufferReceive.begin(), bufferReceive.end());
if(messageSent != messageReceived){
ofLogError() << "message different";
}
}else{
ofLogError() << "error while receiving"
}