2014-07-14 1 views
0

다시 말해서 yes, yes. 5 분 코딩 = 1 일 코드 수정. 다음은 두 번째 요청에 대해서만 의 IOException (스트림에서 읽을 수 없음)을 던지는 코드입니다. 첫 번째 코드는 정상적으로 작동합니다. 예외가 throw됩니다 bytes = sslStream.Read(buffer, 0, buffer.Length); 결과없이이 문제를 해결하려고했습니다. 여기 두 번째 요청시 C# SslStream이 IOException을 throw합니다.

요청 기능을위한 코드입니다

public void SendRequest(string request) 
{ 
    byte[] buffer = new byte[2048]; 
    int bytes = -1; 
    StringBuilder message = new StringBuilder() ; 

    sslStream.Write(Encoding.ASCII.GetBytes(request + "\r\n")); 
    do 
    { 
     try 
     { 
      bytes = sslStream.Read(buffer, 0, buffer.Length); 
      message.Append(Encoding.ASCII.GetString(buffer, 0, bytes)); 
     } 
     catch (Exception) 
     { 
      throw; 
     } 

    } while(!message.ToString().Contains("\n")); 
    Console.WriteLine(message); 
} 

코드를 호출 SendRequest() 기능 : 유 전체 코드를 원하는 경우

while((request = Console.ReadLine().ToLower()) != "exit") 
{ 
    con.SendRequest(request); 
} 

은 여기를 확인하십시오 GitHub Repo

+0

'sslStream'은 어디에 정의되어 있습니까? – DGibbs

+0

'SendRequest()'함수와 같은 클래스 (TcpConnector)에서, 클래스 '생성자 (이 함수는 잘 작동합니다)에서 연결 중입니다. – Endy

+0

@Endy 아마도 요청 시간이 초과 되었습니까? – DGibbs

답변

0

내가 무슨 무슨 알고 지금. 인사말 메시지 후에 두 개의 명령을 전달해야 할 때 : 내가 올바른 명령을 전달하지 않으면 USERPASS 메시지를 전달하면 서버가 연결을 종료합니다 (그 때문에 IOException이 발생합니다). 연결을 닫지 않는 유일한 3 개의 명령은 USER, PASS, QUIT입니다. 이 스레드가 미래에 누군가를 도울 수 있기를 바랍니다 :)

관련 문제