2010-06-13 2 views
0

Imap4 클라이언트를 쓰려고합니다.
나는 SslStream을 사용하여 서버에 연결합니다.
"로그인"명령을 보내기 전까지는 문제가 없습니다.
답변을 얻으려고하면 SslStream.ReadByte()가 스레드를 차단합니다.
그 결과 내 프로그램이 항상 충돌합니다.
여기에 무슨 일이 일어나는가 ??SslStream.ReadByte()가 스레드를 차단합니까?

번호 :

 if (ssl) 
{ 
    s = stream; 
}

int cc = 0; MessageBox.Show("entered"); while (true) { int xs = s.ReadByte(); MessageBox.Show(xs.ToString()); if (xs > 0) { buf.Add((byte)xs); cc++; if (xs == '\n') { break; } if (cc > 10) MessageBox.Show(en.GetString(buf.ToArray())); } else { break; } } MessageBox.Show("left");

답변

4

Stream.ReadByte()이 차단 될 때까지 다음 중

스트림은 (이 경우 -1을 리턴)
  • 데이터가있는 스트림을 수신 폐쇄
    • 다음 바이트가 반환 될 경우

    아마도 연결하려는 서버가 데이터를 보내지 않고 있습니다. 더 많은 데이터를 기다리고 있습니다. 로그인 명령이 제대로 전송되고 있다는 확신이 있습니까? 당신은 쓰고있는 시내를 내뿜습니까? 필요한 구분 기호 나 라인 종결자를 보냈습니까?

  • +0

    ooops 나는 회선 종단 기호가 전혀 없다고 생각한다. – alex

    +0

    예! 감사 – alex

    관련 문제