У меня есть мобильный RF-терминал с Windows CE 6.0 CF 3.5, и мне нужно как можно быстрее отправить данные на мой сервер. Проблема в том, что соединение Wi-Fi недостаточно стабильно в месте использования. Я уменьшил потерю данных при повторной отправке, когда соединение прерывается по исключению. Но время для исключения составляет ~ 21 секунду, и это слишком долго для меня. Повторные подключения успешны (в основном), но мне нужно сократить время исключения или найти другой метод подключения.
Для получения данных у меня есть TCP-сервер в терминале. И вот у меня есть один поток с таймером, и после моего таймаута я закрываю клиент (TcpClient) и ловлю исключение из этого :-). Но я имею в виду, что этот метод не идеален.
Есть идеи?? Спасибо!
Ниже приведен мой код для подключения TCP-клиента.
internal string TCPsend(string strMessage)
{
string exception = string.Empty;
TcpClient client = null;
try
{
client = new TcpClient(IPServer, PortServer);
client.SendTimeout = 500; //no effect
Stream stream = client.GetStream();
StreamWriter strWriter = new StreamWriter(stream);
strWriter.Write(strMessage);
strWriter.Close();
}
catch (Exception ex)
{
exception = ex.ToString();
utility.SaveExceptionLog("SendTCP A: " + ex.ToString());
}
finally
{
if (client != null)
{
client.Close();
}
}
return exception;
}