2015-05-06 3 views
0

Привет, ребята, я запускаю клиент EPP, и он возвращает только приветствие с сервера, даже когда я пытаюсь отправить мою команду входа.EPP всегда возвращает приветствие

вот мой код, что с ним не так?

 using (var _tcpClient = new TcpClient(_endpoint.Host, _endpoint.Port)) 
    { 

      using (var sslStream = new SslStream(_tcpClient.GetStream(), false, ValidateServerCertificate)) 
      { 
       sslStream.AuthenticateAsClient(_endpoint.Host); 

       XmlDocument xdoc = new XmlDocument(); 
       xdoc.LoadXml(requestData); 
       xdoc.Save("C:/request.xml"); 
       string data = xdoc.InnerXml; 
       byte[] bytedata = Encoding.UTF8.GetBytes(data); 
       //Get the request stream. 
       sslStream.Write(bytedata, 0, bytedata.Length); 
       // Write the data to the request stream. 


       sslStream.Flush(); 

       var response = ReadMessage(sslStream); 
       XResponse = XDocument.Parse(response); 

       XResponse.Save("C:/response.xml"); 
      } 

     } 
     return XResponse; 
    } 

    private string ReadMessage(SslStream sslStream) 
    { 
     // The first four bytes will be the the content length as a network order (big-endian) 32-bit number. 
     var lengthBytes = new byte[4]; 
     sslStream.Read(lengthBytes, 0, 4); 
     Array.Reverse(lengthBytes); 

     var length = BitConverter.ToInt32(lengthBytes, 0) - 4; 

     // Create a byte array of the correct size for the response. 
     var messageBytes = new byte[length]; 

     var returned = 0; 

     while (returned != length) 
     { 
      returned += sslStream.Read(messageBytes, 0, length); 
     } 

     return Encoding.UTF8.GetString(messageBytes); 
    } 

Даже если я ничего не пишу с помощью потока ssl, он все равно возвращает приветствие.

Если вы, ребята, можете указать мне в правильном направлении, было бы весьма полезно.

ответ

1

Каждый раз, когда вы отправляете какую-либо команду или открываете соединение, вы должны прочитать и сбросить ответ. Я попал в эту ловушку при разработке моего клиента EPP.

Подключиться. Прочитайте ответ (вы получите приветствие) Отправить команду входа. Прочитайте ответ (вы получите ответ на вход) Отправить команду. Прочитайте ответ. Отправить Отключить. Прочитайте ответ.

Я предполагаю, что вы подключаетесь, а затем отправляете команду входа в систему и задаетесь вопросом, почему ответ, который вы получили, - это приветствие. Вы пропустили шаг. :)

+0

ЭТО !!! В конце концов я получил работу, но забыл обновить вопрос, так что спасибо :) – CKG

0

При подключении сервер, как правило, отвечает приветствием.

Прочитайте ответ приветствия при подключении. Затем вы можете отправлять команды и получать ответы как обычно.