如何解决重新打开响应服务器时,NetMQ请求/响应有时会失败
我正在尝试使用NetMQ从“请求/响应”模式发送和接收消息。 我想通过重新打开响应服务器来模拟网络断开连接。 重新打开响应服务器时,消息有时会失败。
我在做什么错?任何信息或协助将不胜感激。
请求客户端:
RequestSocket client = new RequestSocket();
client.Connect(address);
while(true)
{
client.SendFrame(dataBytes);
client.ReceiveFrameString();
Thread.Sleep(100);
}
还尝试了使用Try *的Request Client,并在一段时间内未收到任何响应的情况下重新连接:
bool success = false;
while(true)
{
success = client.TrySendFrame(TimeSpan.FromMilliseconds(500),dataBytes);
if (success)
{
break;
}
Thread.Sleep(100);
}
int count = 0;
success = false;
while(true)
{
success = client.TryReceiveFrameString(TimeSpan.FromMilliseconds(500),out string s);
if (success)
{
break;
}
count++;
if (count >= 50)
{
client.disconnect(address);
client.Connect(address);
break;
}
Thread.Sleep(100);
}
响应服务器(手动再次关闭并打开程序):
ResponseSocket server = new ResponseSocket(connection);
while(true)
{
if (server.TryReceiveFrameBytes(TimeSpan.FromMilliseconds(300),out byte[] dataBytes))
{
server.SendFrame("Response");
}
Thread.Sleep(100);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。