Windows CE 6.0 CF 3.5를 사용하는 모바일 RF 터미널이 있으며 가능한 빨리 서버에 데이터를 보내야합니다. Wi-Fi 연결이 사용하기에 안정적이지 못합니다. 예외로 인해 연결이 중단되면 반복되는 전송으로 데이터 손실을 줄였습니다. 그러나 예외 시간은 ~ 21 초이며 너무 오래 걸립니다. 반복 된 연결은 성공적이지만 (대부분), 예외 시간을 줄이거 나 연결 방법을 찾아야합니다.TCP 클라이언트 - 시간 제한 설정 C# CF 3.5
데이터 수신을 위해 터미널에 TCP 서버가 있습니다. 그리고 여기에 타이머가있는 하나의 스레드가 있고 시간 제한을 초과 한 후에 클라이언트 (TcpClient)를 닫고 예외를 catch합니다 .--). 그러나 나는이 방법이 이상적이지 않다는 것을 의미한다.
어떤 아이디어 ?? 감사합니다. 당신은 아마 당신이 설정된 연결을위한 루프에서 확인합니다 새 스레드를 열어야합니다, 당신의 손으로 연결 확인을하려면
다음은 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;
}
게시 한 코드에서 대부분의 시간은 연결을 열거 나 닫는 데 소요됩니다. 연결이 열린 상태를 유지하고주기적인 하트 비트 메시지를 사용하여 기타가 없을 경우 네트워크 중단을 감지하는 것이 훨씬 효율적입니다 그렇게하는 트래픽. – tcarvin