Привет. В настоящее время я делаю две программы, одна из которых предназначена для работы в качестве сервера, а одна из них предназначена для работы в качестве клиента. В настоящее время у меня возникла проблема, когда сервер может получать сообщения от клиента, но не может отправить их обратно.
Код сообщения отправки клиентом и сервером идентичен
public void SendMessage(MessageContainer msg)
{
TcpClient client = new TcpClient(IP,Port);
serializer.Serialize(client.GetStream(), msg);
client.Close();
}
Единственный Разница в программах заключается в том, что сервер работает круглосуточно, то же самое относится и к клиенту, но клиент может ожидать, что после его отправки появится конкретное сообщение c, такое как запрос ключа RSA. Сервер и клиент имеют одну и ту же процедуру GetMessage
public MessageContainer GetMessage()
{
if (listener.Pending())
{
TcpClient client = listener.AcceptTcpClient();
string IP = ((IPEndPoint)client.Client.RemoteEndPoint).Address.ToString();
NetworkStream stream = client.GetStream();
MessageContainer container = (MessageContainer)xmlSerializer.Deserialize(stream);
container.IP = IP;
return container;
}
else
{
return null;
}
}
Но для прослушивания у клиента также есть указанный метод сообщения c, который, похоже, не работает ни при каком сценарии.
public MessageContainer GetSpecificMessage(string Expectation)
{
timer.Stop();
MessageContainer msg = null;
do
{
msg = GetMessage();
if (msg != null)
{
if (msg.Message == Expectation)
{
timer.Start();
return msg;
}
else
{
messages.Enqueue(msg);
msg = null;
}
}
}
while (msg == null);
return null;
}
Я пытался какое-то время поработать над этой проблемой, включая перекодировку всего своего сервера, но я всегда получаю одну и ту же ошибку, я пытался отключить брандмауэры Mcafee на обеих машинах, и до сих пор не было никакого прогресса проблема. Любая помощь будет оценена, спасибо.