我的移动射频终端配有Windows CE 6.0 CF 3.5,我需要尽快将数据发送到我的服务器。 问题是wifi连接不够稳定而不是使用。 当连接因异常中止而重复发送时,我减少了数据丢失。但是例外的时间是~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;
}
答案 0 :(得分:0)
如果您想将连接检查交到您的手中,可能您应该打开新线程,在那里您将检查已建立连接的循环。
以下是琐碎检查的答案:What is the best way to check for Internet connectivity using .NET?
这会影响整体发送效果,但应减少等待时间。