2014-02-18 5 views
1

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; 
    } 
+0

게시 한 코드에서 대부분의 시간은 연결을 열거 나 닫는 데 소요됩니다. 연결이 열린 상태를 유지하고주기적인 하트 비트 메시지를 사용하여 기타가 없을 경우 네트워크 중단을 감지하는 것이 훨씬 효율적입니다 그렇게하는 트래픽. – tcarvin

답변